Как стать автором
Обновить

Комментарии 9

А что вернёт функция Logarithmic, если оба вызова функции Uniform(0, 1) вернут 0?
Маловероятно, что функция Uniform(0, 1) вернет 0. И (практически) невероятно, что это произойдет два раза подряд. Тем не менее, вопрос хороший.
В приложенном коде я не обрабатывал опасные ситуации, дабы сделать его более понятным. Можете обратить внимание на функцию PoissonKnuth и увидеть, что произойдет, если Uniform(0, 1) вернет 0. Во избежание подобных казусов можно использовать в качестве базового генератора функцию, возвращающую натуральные числа, начиная с 1. Тогда функция Uniform(0,1) = BasicRandGenerator() / RAND_MAX будет генерировать числа в диапазоне (0, 1], что будет считаться эквивалентным распределением почти всюду.
Возможно, в этом алгоритме стоит писать (1 — Uniform(0, 1)) вместо Uniform(0, 1)?
И что будет, если она вернет 1?
Если Uniform — функция, которая возвращает равномерно распределенное случайное число из интервала [0, 1) — то 1 она не вернет никогда.
Не то, на чем бы я хотел акцентировать внимание в этой статье. Включен ли 0 или включен ли 1 в генерации равномерно распределенной величины не имеет большого значения. Всегда можно обработать непредвиденные ситуации. Я лишь пытался рассказать о быстрых алгоритмах для разных распределений
> Не то, на чем бы я хотел акцентировать внимание в этой статье.

Это как раз понятно, просто больше придраться было не к чему. А на подобные грабли я лично наступал, правда в другом генераторе. Вероятность такого события мала, зато генератор вызывается много раз, а одно отсутствующее значение может испортить весь долгий расчёт.
Если что-либо может произойти, то оно обязательно произойдет наихудшим из возможных вариантов. ru.m.wikipedia.org/wiki/Закон_Мерфи
алгоритм, использующий лишь одну равномерно распределенную случайную величину


Прикольно, но при q=p зациклится на U=1… А есть где-нибудь объяснение этой формулы под спойлером для тех, кому не повезло с преподом по мат.статистике? Спасибо
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории