【问题标题】:Probability seems wrong using Python randint使用 Python randint 概率似乎是错误的
【发布时间】:2015-02-05 04:15:17
【问题描述】:

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

【问题讨论】:

    标签: python python-2.7 random probability


    【解决方案1】:

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

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

    你可以很容易地找到这样的解决方案;

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

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

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

    100 / 10000 = 0.01
    

    希望这会有所帮助。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-08-16
        • 1970-01-01
        • 2016-04-06
        • 1970-01-01
        • 2018-12-22
        • 2019-08-19
        • 2018-10-16
        • 2016-01-19
        • 2019-01-23
        相关资源
        最近更新 更多