случайное распределение Гаусса с использованием C ++ без среднего и стандартного отклонения

Я равномерно генерировал случайные числа. Теперь я хочу генерировать случайные числа, используя гауссово (нормальное) распределение. Я не знаю среднего и стандартного отклонения. Я прочитал эту статью: http://www.johndcook.com/cpp_TR1_random.html#normal, но это требует среднего и стандартного отклонения!
Я также знаю, что преобразование Бокса-Мюллера широко используется. Это правильно производит значения с нормальным распределением. но опять же я не знаю среднего и стандартного отклонения.
Не буст, пожалуйста.
Может кто-нибудь помочь, пожалуйста?

0

Решение

Когда вы генерируете равномерно распределенные (в сегменте) случайные числа, вам нужны два параметра: нижняя граница сегмента и верхняя граница сегмента. Обычно они равны 0 и 1 соответственно, поэтому вы получаете числа от [0..1] спектр.

Теперь для генерации нормально распределенных чисел вам также понадобятся два параметра: среднее значение и стандартное отклонение. Однако они имеют другое значение. Среднее значение — это число, вокруг которого будут собираться ваши сгенерированные числа: если вы укажете, скажем, 15, вы, скорее всего, увидите 11, 17, 13, 21, 9, 12, 14, 11 и т. Д., Но не (обычно) 290 или -562. И стандартное отклонение (сигма) в основном определяет, как далеко сгенерированные числа могут отклоняться от среднего значения. Строго говоря, может генерироваться число любой величины: даже если вы укажете среднее значение 0 и сигма 1e-6Вы все еще можете получить 1000 — но это маловероятно.

Как правило, почти все сгенерированные числа будут в [mean - 3 * sigma .. mean + 3 * sigma] диапазон, и я уверен, что вы не увидите ничего, кроме [mean - 5 * sigma .. mean + 5 * sigma] Диапазон в вашей жизни.

Существует понятие «стандартного» нормального распределения: среднее значение = 0, сигма = 1. Это означает, что вы получите числа в основном в [-3..3] спектр.

Надеюсь, это поможет несколько!

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector