查找概率的两种方法之间的差异



问:将步长设置为 0,有 20% 的几率

方法1

#seed set at 123
abc=(1,2,3,4,5)
#as 1 has 20% chance of being picked from the list..
if np.random.choice(abc)==1:
step = 0
else step=100

方法2

#seed set at 123
if np.random.rand() <= 0.2 :
step = 0
else step=100

哪一个是正确的?

这两种方法应该给出相同的结果。 您可以通过计算 step=0 的情况的平均百分比来测试它,并多次重复计算,例如 10000000 次:

np.random.seed(123)
print(np.mean(np.random.rand(10000000)<0.2))
print(np.mean(np.random.choice((1,2,3,4,5), 10000000)==1))

结果非常接近 20%:

0.1999137
0.1999221

最新更新