生成随机泊松数

时间:2017-09-20 05:01:56

标签: python random poisson

我正在编写一个函数(不使用random.poisson函数),该函数从具有lambda a的泊松分布生成随机数。

当运行具有不同参数的函数时,我总是得到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

尝试不同的lambda值:

print(random_poisson(3))
print(random_poisson(5))
print(random_poisson(math.log(5)))

输出:

0
0
0

非常感谢!

1 个答案:

答案 0 :(得分:1)

对于任何正amath.exp(a)大于1,但p为1.循环条件永远不会,循环永远不会执行,并且您的函数返回初始值价值x