在我的 python 代码中,有几个地方我有一个人口,每个人都有 x
的机会发生某些事情,但我只需要受影响的人数。
amount = 0
population = 500
chance = 0.05
for p in range(population):
if random.random() < chance:
amount += 1
我的直觉告诉我,一定有比调用 random.random() 500 次更简单的方法来做到这一点。一些我不知道的数学或统计术语或函数。
amount = population * chance * random.random()
对于我的需要来说变化太大了。
最佳答案
n 0-1 个随机变量之和的分布,每个随机变量的概率为 p,称为 binomial distribution带有参数 n 和 p。我相信numpy.random.binomial
会做你想做的事。
关于python - 概率函数生成值而不是随机调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32065067/