Как сгенерировать случайную величину из некоторого распределения, имея только функцию random(), то есть равномерно распределённую на отрезке [0,1] случайную величину?
Если у случайной величины X функция распределения F монотонна непрерывна, то при x из (0,1)
P(F(X) < x) = P(X < F^(-1)(x)) = F(F^(-1)(x)) = x,
где F^(-1) — обратная функция распределения.
То есть случайная величина F(X), полученная подстановкой X в ф.р. F, имеет равномерное распределение на [0,1]. Тогда для моделирования случайной величины X можно сгенерировать равномерно распределённую на [0,1] случайную величину U и подставить в F^(-1).
Так, например, -ln(U) будет иметь стандартное экспоненциальное распределение.
На самом деле от монотонности можно отказаться, если корректно определить F^(-1).
По этой теме мы со студентами на парах по статистике выполняем лабораторную работу. В файле ниже подробно описаны различные методы моделирования случайных величин и есть задания. Решил сохранить файлик и на канале, думаю, многим читателям будет полезно!


