在Python中计算概率

时间:2016-01-23 20:36:10

标签: python probability

我是python的新手,我很感激你的帮助:) 我有以下代码:

import random
x = 1
def round():
    return random.randint(1,6)
for i in range(8):
    result = round()
    if result > x:
        x = result
if x == 5:
print "True"

目标是计算程序打印“真”的概率,概率应为0.193。 这样做最有效的方法是什么?我想到了与bernoulli发行有关的事情并试过但我的结果是错误的。 谢谢!

2 个答案:

答案 0 :(得分:4)

第一步是认识到你的程序简化为

x = max(randint(1,6) for _ in range(8))

那么x == 5

的几率
prob(nothing higher than 5) - prob(nothing higher than 4)

(5/6)**8 - (4/6)**8   # => 0.19354959705075458

答案 1 :(得分:2)

如果我的问题正确,您想了解randomint实际生成数字(分布)的方式。看起来它以统一的方式生成它们(你在间隔中得到任何数字的几率大致相同)。

可以找到更多详细信息herehere甚至更多" nerdish"这里。

因此,Hugh Bothwell的回答是正确的(它基于您获得的数字的均匀分布)。