РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
121 of 815 menu

Класс mt19937

Класс mt19937 представляет собой генератор псевдослучайных чисел, основанный на алгоритме Mersenne Twister. Он генерирует последовательность 32-битных беззнаковых целых чисел с периодом 219937 - 1. Для получения случайного числа необходимо создать объект этого класса и вызвать оператор вызова функции operator, который не принимает параметров и возвращает следующее псевдослучайное число. Для инициализации генератора можно передать начальное значение (seed) в конструктор или использовать объект random_device для получения непредсказуемого зерна.

Синтаксис

std::mt19937 name; std::mt19937 name(seed);

Пример

Давайте создадим генератор mt19937 с фиксированным зерном 123 и выведем несколько случайных чисел:

#include <iostream> #include <random> using namespace std; int main() { mt19937 gen(123); cout << gen() << endl; cout << gen() << endl; cout << gen() << endl; return 0; }

Результат выполнения кода:

128959393 1692901013 436085873

Пример

Давайте используем random_device для генерации непредсказуемого зерна и получим случайное число в диапазоне от 1 до 100 с помощью uniform_int_distribution:

#include <iostream> #include <random> using namespace std; int main() { random_device rd; mt19937 gen(rd()); uniform_int_distribution<int> dist(1, 100); cout << dist(gen) << endl; return 0; }

Результат выполнения кода (пример):

42

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

  • класс random_device,
    который генерирует непредсказуемые случайные числа
  • класс uniform_int_distribution,
    который задает равномерное распределение целых чисел
  • класс uniform_real_distribution,
    который задает равномерное распределение вещественных чисел
  • функция rand,
    которая генерирует псевдослучайное число
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить