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

Google Translate Icon

В этом посте мы обсудим, как генерировать случайные значения с плавающей запятой в C++.

1. Использование std::uniform_real_distribution

Начиная с C++11, мы можем создавать равномерно распределенные значения с плавающей запятой между двумя числами с помощью std::uniform_real_distribution. Рассмотрим следующий код, который создает высококачественные случайные значения с плавающей запятой в замкнутом интервале. [1, 10] с использованием std::uniform_real_distribution. Оно использует std::random_device получить сид для стандартного mersenne_twister_engine std::mt19937, основанный на алгоритме Mersenne Twister.

Скачать  Выполнить код

 
Обратите внимание, что в заголовке определено множество других предопределенных генераторов случайных чисел. <random>, как указано здесь. До C++11 вы можете использовать Mersenne Twister с помощью библиотеки boost для генерации случайных значений с плавающей запятой. Например, в следующем решении используется Boost.Random с boost::random::uniform_real_distribution а также std::mt19937 алгоритм для генерации случайного значения с плавающей запятой в закрытом диапазоне [1, 10].

Скачать код

2. Использование rand() функция

Другое простое, но менее предпочтительное решение для генерации псевдослучайных чисел в C++ — это rand() функция. Возвращает случайное число между 0 а также RAND_MAXи может использоваться для генерации случайных значений с плавающей запятой в любом произвольном закрытом интервале. Не забудьте добавить в генератор случайных чисел srand() перед вызовом rand(). Оба rand() а также srand() функции определены в <cstdlib> заголовок.

Например, следующее будет генерировать число с плавающей запятой в ближнем диапазоне [0, 1].

Скачать  Выполнить код

 
Мы можем легко расширить решение, чтобы сгенерировать произвольное значение с плавающей запятой между двумя указанными значениями. Например, выражение low + rand() * (high - low) / RAND_MAX; генерирует случайное значение с плавающей запятой в закрытом диапазоне [low, high], как показано ниже:

Скачать  Выполнить код

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

Оценить этот пост

Средний рейтинг 4.69/5. Подсчет голосов: 13

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?




Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования :)



Подписывайся
Уведомить о
guest
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
НЕ переходите по этой ссылке, иначе вы будете забанены на сайте!