Функцията srand () в C ++ засява генератора на псевдо случайни числа, използван от функцията rand ().
Функцията srand () в C ++ засява генератора на псевдо случайни числа, използван от функцията rand (). По подразбиране семената за rand () е 1.
Това означава, че ако не е извикан srand () преди rand (), функцията rand () се държи така, сякаш е поставена с srand (1).
srand () прототип
void srand (неподписан int seed);
Функцията srand () приема за свой параметър цяло число без знак, което се използва като начално от функцията rand ().
Той се определя в заглавния файл.
srand () Параметри
- seed: Семейна стойност от тип unsigned int
srand () Върната стойност
- Нито един
Функцията srand () не връща никаква стойност.
Пример 1: Как работи функцията srand ()?
#include #include using namespace std; int main() ( int random = rand(); /* No srand() calls before rand(), so seed = 1*/ cout << "Seed = 1, Random number = " << random << endl; srand(5); /* Seed = 5 */ random = rand(); cout << "Seed = 5, Random number = " << random << endl; return 0; )
Когато стартирате програмата, изходът ще бъде:
Семе = 1, Случайно число = 41 Семе = 5, Случайно число = 54
Добра практика е да поставяте генератора на псевдо случайни числа само веднъж в началото на програмата и преди всякакви извиквания на rand (). Не трябва да се засява всеки път, когато трябва да генерираме нов набор от числа.
Стандартната практика е да се използва резултатът от призив към време (0) като начален елемент. Функцията time () връща броя секунди от 00:00 часа, 1 януари 1970 г. UTC (т.е. текущата Unix времева марка). Стойността на семената се променя с времето. Така всеки път, когато стартираме програмата, се генерира нов набор от произволни числа.
Пример 2: srand () функция с време ()
#include #include #include using namespace std; int main() ( srand(time(0)); int random = rand(); cout << "Seed = " << time(0) << endl; cout << "Random number = " << random << endl; return 0; )
Когато стартирате програмата, изходът ще бъде:
Seed = 1485583981 Случайно число = 22589