Генерация случайного числа с плавающей запятой в C++

Опубликовано: 18 Февраля, 2023

Случайные числа с плавающей запятой можно генерировать двумя способами:

  • Использование ранд()
  • Использование равномерного реального распределения

1. Использование ранда()

Мы можем генерировать случайные целые числа с помощью функций rand() и srand(). Существуют некоторые ограничения на использование srand() и rand(). Чтобы узнать больше о функциях srand() и rand(), обратитесь к srand() и rand() в C++.

Подход: мы можем изменить подход, который мы использовали для поиска случайного целого числа здесь, чтобы найти случайное число с плавающей запятой,

Пример:

Скажем, кто-то хочет сгенерировать дробную часть только тогда,

Пример:

2. Сгенерируйте случайные числа с плавающей запятой, используя метод «равномерного действительного распределения».

C++ представил класс uniform_real_distribution в библиотеке random, функция-член которой выдает случайные действительные числа или непрерывные значения из заданного входного диапазона с равномерной вероятностью.

Пример:

Недостаток использования std:uniform_real_distribution:

Мы не можем генерировать какую-либо случайную последовательность всякий раз, когда мы выполняем этот код, это приводит нас к одинаковым последовательностям каждый раз, поэтому этот код можно применять для нахождения вероятности или частоты в определенном диапазоне в большом количестве экспериментов.

Пример:

Генерация случайных чисел в диапазоне

Предположим, есть два числа a и b , мы хотим сгенерировать между ними случайное число [a, b)

1. Генерация случайного целого числа в диапазоне

Пример:

Теперь мы можем использовать эту же концепцию для генерации случайного числа с плавающей запятой в диапазоне

2. Генерация случайных чисел с плавающей запятой в диапазоне

Пример:

Заворачивать:

Соберем все в один пример.

Пример: