Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
117 of 824 menu
◀ ▶

Функция 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,
    который задаёт равномерное распределение целых чисел
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить