使用Python randint,概率似乎是错误的

时间:2015-02-05 04:15:17

标签: python python-2.7 random probability

我正在使用Python 2.7生成两个随机数, 1-100 (包括 1 100 ),如果他们是相同的,事件发生。我认为这个概率 1/10000 ,因为

1/100 * 1/100 = 1/10000

但两个数字匹配所需的次数通常在10到200之间。为什么会发生这种情况,有没有办法解决它?


这是我的完整代码:

import random
p5SickGen1 = random.randint(1,100)
p5SickGen2 = random.randint(1,100)
counter = 0
while p5SickGen1 != p5SickGen2:
    counter += 1
    p5SickGen1 = random.randint(1,100)
    p5SickGen2 = random.randint(1,100)

print(counter)

2 个答案:

答案 0 :(得分:4)

正如前面提到的@jgritty,您的假设错误

概率不会 1/10000 ,因为您同时从两组不同的数字中进行选择,这并不意味着您从一组数字中选择一个数字两次

您可以轻松找到这样的解决方案;

获得相同数字的可能性是多少;

(1,1), (2,2), (3,3), (4,4), (5,5), ..., (100, 100) = 100 

您的样本空间 100 * 100 = 10000 。因此,在一个选择中获得相同数字的概率;

100 / 10000 = 0.01

希望这有帮助。

顺便说一句,对于那些有兴趣学习概率基础知识的人,你可以从here开始。

答案 1 :(得分:3)

你的假设是错误的。这里没有错。

连续两次出现数字的几率几乎是百分之一。

现在,如果你选择一个特定的数字,比如42,两次获得42次的几率是1:10000。