Страницы

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

четверг, 19 марта 2020 г.

Генератор чисел логнормального распределения

#алгоритм #java


Здравствуйте!

Был у меня здесь недавно вопрос, пошел я по пути формирования нового значения, базирующемся
на распределении вероятности. Спасибо большое @neofit !

Получилась интересная картина, очень напоминающая лонормальное распределение:

распределение http://upload.dexstudio.com.ua/botva2.jpg

Теперь, собственно, вопрос, как генерировать число из этого распределения? Есть готовые
решения, например, для Java, которые способны принимать данное распределение и выдавать
значение где-то среди этой красоты?
    


Ответы

Ответ 1



Пример: Вам нужно чтобы событие 1 произошло с шансом 75%, событие 2 с шансом 10%, событие 3 с шансом 15%. Генерируете случайное число от 0 до 99. Если число в интервале 0-74, то событие 1, 75-84 событие 2, 85-99 событие 3. В Вашем вопросе все тоже самое. Сумма длин всех полосок- это число 99 в примере. Длина каждой полоски задает интервал попадания.

Ответ 2



Делаем так: Если мы считаем, что наш набор экспериментальных значений похож на логнормальное распределение, то берем функцию аппроксимирующую логнормальное распределение - например эту (по сути гаусс с логарифмами) Далее методом наименьших квадратов, находим 2 параметра логнормального распределения (в классике сигма задает "толщину", а мю - задает положение экстремума) Далее спокойно подставляем в полученную функцию значения и генератор готов.

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

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