Страницы

Поиск по вопросам

пятница, 26 октября 2018 г.

uniform_real_distribution is not uniform

Пожалуйста, помогите мне понять это. После запуска этого фрагмента:
random_device randomEngine; mt19937 generatorEngine(randomEngine()); uniform_real_distribution unifRandomValue( numeric_limits::min(), numeric_limits::max());
double test[1000]; for (int i{ 0 }; i < 1000; ++i) { test[i] = unifRandomValue(generatorEngine); }
Почему все сгенерированные значения находятся в диапазоне [1.0E306, 1.8E308]? Я ожидал, что случайное значение равномерно распределено от 0 до maximum double?


Ответ

это свойство генератора.
рассмотрите целочисленный диапазон от 0 до 99 включительно: 90% будут иметь 2 цифры.

Комментариев нет:

Отправить комментарий