Пространства имён
Варианты
Действия

std::srand

Материал из cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
Генерация псевдослучайных чисел
Генераторы равномерных случайных битов
Генераторы и адаптеры генераторов
Недетерминированный генератор
Распределения
Равномерные распределения
Распределения Бернулли
Распределения Пуассона
Нормальные распределения
Распределения выборки
Последовательности настройки
(C++11)
Библиотека C
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.

[править] Пример

#include <cstdlib>
#include <ctime>
#include <iostream>
 
int main() 
{
    std::srand(std::time(0)); // использовать текущее время в качестве начального
                              // значения для генератора случайных чисел
    std::cout << "Случайное значение в диапазоне [0, " << RAND_MAX << "]: " << std::rand();
}

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

Случайное значение в диапазоне [0, 2147483647]: 1373858591

[править] Смотрите также

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