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

Probability seems wrong using Python randint

我正在使用 Python 2.7 生成两个随机数,1-100(包括 1100), 如果相同则事件发生。我认为这个概率是 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)

你的假设是错误的。这里没什么问题。

连续两次出现相同数字的几率是 100 分之一。

现在,如果你选择一个特定的数字,比如说 42。两次都得到 42 的几率是万分之一。

正如之前所说,你的假设是错误的

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

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

得到相同数字的可能性是;

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

您的样本 space 是 100*100 = 10000。因此一次选号得到相同号码的概率;

100 / 10000 = 0.01

希望对您有所帮助。

顺便说一句,有兴趣学习概率基础知识的小伙伴可以从here.

开始