Функция srand
Функция srand устанавливает начальное значение
(зерно, seed) для генератора псевдослучайных чисел,
который используется функцией rand. Если не
вызвать srand перед первым вызовом rand,
генератор будет инициализирован значением 1, и
последовательность случайных чисел будет одинаковой
при каждом запуске программы. В первый параметр мы
передаем целое число без знака - зерно генератора.
Обычно в качестве зерна используют текущее время,
полученное с помощью time с аргументом NULL.
Синтаксис
srand(seed)
Пример
Давайте инициализируем генератор случайных чисел
фиксированным зерном 42 и выведем три
случайных числа:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
srand(42);
cout << rand() << endl;
cout << rand() << endl;
cout << rand() << endl;
return 0;
}
Результат выполнения кода:
71876166
708592740
1483128881
Пример
Давайте инициализируем генератор текущим временем, чтобы при каждом запуске программы получать новую последовательность случайных чисел:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
cout << rand() << endl;
cout << rand() << endl;
cout << rand() << endl;
return 0;
}
Результат выполнения кода:
1804289383
846930886
1681692777
Пример
Давайте сгенерируем случайное число в диапазоне
от 1 до 100, используя остаток
от деления:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int res = rand() % 100 + 1;
cout << res << endl;
return 0;
}
Результат выполнения кода:
57
Смотрите также
-
функция
rand,
которая возвращает псевдослучайное число -
класс
mt19937,
который представляет современный генератор случайных чисел -
класс
random_device,
который генерирует истинно случайные числа -
класс
uniform_int_distribution,
который задаёт равномерное распределение целых чисел