Я писал функцию (без использования функции random.poisson), которая генерирует случайное число из распределения Пуассона с лямбда-а.
При запуске функции с разными параметрами я всегда получаю 0. Я предполагаю, что это проблема алгоритма, но не знаю, где не так.
Вот мой код.
#takes a as lambda (mean)
def random_poisson(a):
x = 0
p = 1
while p >= math.exp(a):
i = random.random()
p = p * i
x += 1
return x
Пробуем разные значения лямбда:
print(random_poisson(3))
print(random_poisson(5))
print(random_poisson(math.log(5)))
Выход:
0
0
0
Большое спасибо!
math.exp(-a)
и использовать сохраненный результат в сравненииwhile
. - person pjs   schedule 20.09.2017