使用python解决三门问题(Monty Hall Problem)实验

使用python解决三门问题(Monty Hall Problem)实验,第1张

问题描述
奖品随机分布在3扇门后,客户随机选择其中一扇,主持人打开另外两扇中任意没有奖品的一扇,问客户选择以下哪种策略赢面更大:
1.坚持原来的选择
2.改选剩下的那扇未打开的门

问题分析
1.如果从主持人的视角来看,无论客户随机打开哪一扇门概率都是1/2。
2.从客户的角度看问题,因为自己先选定一扇门,那主持人肯定不会打开有奖品的那扇门,排除了注册人打开有奖品的那扇门的概率,那么概率就发生了微妙的平衡。

数学推导过程





也就是说,不改变门的情况下中奖概率为1/3,改变门的情况下中奖概率为2/3。

那么我们用一段简单的代码来演示一下:

import random
s1,s2=0,0
#运行10万次
for i in range(1,100000):
    #定义三个门,0为无,1为有
    date=[0,0,0]
    #随机放入一个奖品
    date[random.randint(0,2)]=1
    #a是你选定的
    a=random.randint(0,2)
    #b是主持人为你打开的空门
    b=random.randint(0,2)
    #主持人不能动你的门和有奖品的门
    while a==b or date[b]==1:
        b=random.randint(0,2)
    #中将次数累加
    if date[a]==1:
        s1+=1
    else:
        s2+=1
print("不换中奖概率{0},换中奖概率{1}".format(s1/(s1+s2),s2/(s1+s2)))

运行结果:

由此可以验证我们上述推导正确。
为什么答案会选择换,主要原因还是在主持人,主持人不会直接打开有奖品的那扇门,也就是说,如果你蒙对了,他会随机开一扇空的门。如果你蒙错了,他只能开空的那扇门,那么剩下那扇门一定有奖品。那么你第一次蒙对概率大还是蒙错概率大,当然是蒙错概率大,那么换门意味着获奖概率大。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/916822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存