Namespaces
Variants

std:: srand

From cppreference.net
Определено в заголовочном файле <cstdlib>
void srand ( unsigned seed ) ;

Заполняет генератор псевдослучайных чисел, используемый std::rand() значением seed .

Если std::rand() используется до любых вызовов srand() , std::rand() ведет себя так, как если бы она была инициализирована с помощью srand ( 1 ) .

Каждый раз, когда std::rand() инициализируется одним и тем же seed , он должен генерировать одинаковую последовательность значений.

srand() не гарантирует потокобезопасность.

Содержание

Параметры

seed - значение начального числа

Возвращаемое значение

(нет)

Примечания

В общем случае, генератор псевдослучайных чисел должен инициализироваться только один раз, перед любыми вызовами rand() , в начале программы. Не следует выполнять повторную инициализацию или переинициализацию каждый раз, когда требуется сгенерировать новую партию псевдослучайных чисел.

Стандартной практикой является использование результата вызова std:: time ( 0 ) в качестве затравки. Однако std::time возвращает значение типа std:: time_t , а std:: time_t не гарантированно является целочисленным типом. На практике, однако, все основные реализации определяют std:: time_t как целочисленный тип, и этого же требует стандарт POSIX.

Пример

#include <cstdlib>
#include <ctime>
#include <iostream>
int main() 
{
    std::srand(std::time(0)); // use current time as seed for random generator
    std::cout << "Random value on [0, " << RAND_MAX << "]: " << std::rand() << '\n';
}

Возможный вывод:

Random value on [0, 2147483647]: 1373858591

Смотрите также

генерирует псевдослучайное число
(функция)
максимальное возможное значение, генерируемое std::rand
(макроконстанта)
переинициализирует поточно-ориентированный генератор случайных чисел
(функция)