我正在使用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)
答案 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。