使用 Python randint 的概率似乎是错误的
Probability seems wrong using Python randint
我正在使用 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)
你的假设是错误的。这里没什么问题。
连续两次出现相同数字的几率是 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.
开始
我正在使用 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)
你的假设是错误的。这里没什么问题。
连续两次出现相同数字的几率是 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.
开始