std::srand
Определено в заголовочном файле <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.
[править]Пример
Возможный вывод:
Случайное значение в диапазоне [0, 2147483647]: 1373858591
[править]Смотрите также
генерирует псевдослучайные числа (функция) | |
максимально возможное значение, генерируемое std::rand (макроконстанта) | |
повторно загружает движок случайных чисел для каждого потока (функция) | |
Документация C по srand |