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

Класс uniform_real_distribution

Класс uniform_real_distribution из заголовочного файла random представляет собой генератор случайных чисел с равномерным распределением. Он возвращает вещественные числа типа double (или другого указанного типа), попадающие в заданный интервал [a, b). В первый параметр конструктора мы передаем нижнюю границу диапазона a, а во второй - верхнюю границу b. Число a может быть сгенерировано, а число b - нет. Для получения очередного случайного числа используется метод operator, которому в качестве аргумента передается генератор.

Синтаксис

#include <random> std::uniform_real_distribution<Type> dist(a, b); Type value = dist(generator);

Пример

Давайте сгенерируем 5 случайных вещественных чисел в диапазоне от 0.0 до 1.0:

#include <iostream> #include <random> using namespace std; int main() { random_device rd; mt19937 gen(rd()); uniform_real_distribution<double> dist(0.0, 1.0); for (int i = 0; i < 5; i++) { cout << dist(gen) << endl; } return 0; }

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

0.135477 0.835009 0.968868 0.221034 0.308167

Пример

Давайте сгенерируем случайное вещественное число в диапазоне от -10.0 до 10.0:

#include <iostream> #include <random> using namespace std; int main() { random_device rd; mt19937 gen(rd()); uniform_real_distribution<double> dist(-10.0, 10.0); double res = dist(gen); cout << res << endl; return 0; }

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

3.72619

Пример

Давайте заполним вектор 5 случайными вещественными числами в диапазоне от 0.0 до 100.0 и выведем их на экран:

#include <iostream> #include <vector> #include <random> using namespace std; int main() { random_device rd; mt19937 gen(rd()); uniform_real_distribution<double> dist(0.0, 100.0); vector<double> vec; for (int i = 0; i < 5; i++) { vec.push_back(dist(gen)); } for (double el : vec) { cout << el << " "; } cout << endl; return 0; }

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

42.1355 87.352 15.8089 66.4024 3.05403

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

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