概率逻辑——一辆跑车与两只山羊(理论分析+python实现)

 

   “玛丽莲问题”(也称为三扇门问题、蒙提霍尔问题)问题如下:台上有三个门,一个后边有汽车,其余后边是山羊。主持人让你任意选择其一。然后他打开其余两个门中的一个,你看到是山羊。这时,他给你机会让你可以重选,也就是你可以换选另一个剩下的门。那么,你换不换?


理解方式1: 经典概率论:将所有事件划分成一个个等概率事件,然后计算的跑车的概率。说白了,换与不换可以归结为,是否用一个门换另外两个门,其中主持人是否打开并不影响交换的方式。

理解方式2:信息论:如果是外星人来选择,肯定随便。但是作为选择了一扇门的人再次进行选择,便有了更多的信息,在此基础上进行的选择,便不是随机选择了。

 

如果第一次看不懂没关系,这个是总结性的话语。期望在看完后续转载部分之后,回过头来看,兴许有所感悟。

笔者后续尝试通过从条件概率的角度切入,发现条件概率最终算得为1/2,因此主持人的行为并不能应用于条件概率解释。

该问题应该从古典概率的角度思考


转载:http://blog.sina.com.cn/s/blog_71ea93f90100y0ul.html

 

有些看似简单的问题,其实不简单,甚至让人感到反直觉。需要耐心细致的分析对比思考。

 
     
  玛丽莲的答案是应该换,但是很多读者不同意。玛丽莲在下一期专栏给出一个事件列表说明她的道理,但反对声更多更大了。在几千封读者来信中,反对者达九成。其中有全国健康机构的统计学家,国防情报中心的副主任,甚至著名的美籍匈牙利数学家保罗.埃尔笛希(Paul Erdos)也是反对者之一。 

   涉及到概率的问题,如果想解释得通俗易懂,让非专业人士也能很容易明白,那就不适合引入太多的专业术语和概念。为了方便大家的理解,我的回答不会涉及任何特别专业的词汇。

我们先玩三个游戏吧。

游戏1.有三个盒子,一个盒子里有钻石,其它两个什么都没有。你先选了一个盒子,放在你的书包里。主持人把另外两个放在他的书包里。这时候问你,要不要用你的书包换主持人的书包?

分析:你的书包只有一个盒子,主持人的书包有两个,很显然,主持人的书包里有钻石的可能性更大。所以应该选择换!

游戏2.有三个盒子,一个盒子里有钻石,其它两个什么都没有。你先选了一个盒子,放在你的书包里。主持人把另外两个放在他的书包里。然后主持人从他的书包里扔掉一个没有钻石的盒子。这时候问你,要不要用你的书包换主持人的书包?

分析:主持人从他的书包里扔掉一个没有钻石的盒子,这个行为并不会改变书包里有钻石的概率。所以既然游戏1要换,那么游戏2同样要换。

游戏3.有三个盒子,一个盒子里有钻石,其它两个什么都没有。你先选了一个盒子。然后主持人从另外两个盒子中扔掉一个没有钻石的盒子。这时候问你,要不要用你的盒子换剩下的那个盒子?

分析:游戏2相对于游戏3,唯一的不同是增加了“书包”这个概念,但其实有没有把盒子装入书包,并不会对结论产生影响,本质上游戏3和游戏2是同一个游戏。所以游戏3同样要换。

而游戏3就是题目中所描述的蒙提霍尔问题。因此结论只有一个字:换。

 

再展示一种方法:

 

1991年2月17日,玛丽莲为此题目作了第三期专栏。她最后是这样说服大家的:假如当主持人打开那个有山羊的门后,有外星人忽然来到台上选。他在能选的两个门中任选一个,有车的概率确实都50%。但你不是刚到,你有优势,因为主持人帮助过你了,他为你在其余两个门中作了预选。你换了后,概率就由三分之一提高到三分之二了。然而,事情远远没有结束。接下来的十几年里,“玛丽莲问题”在全球掀起了讨论热潮,相关网站就有数十个,很多网站还给出了测试程序。在国内,你可以在任何论坛或BBS找到关于“玛丽莲问题 ”的帖子,网友们吵得面红耳赤,不亦乐乎。不过总的来说,无论国内还是国外,都是赞同玛丽莲的人多。也就是说就大部分人认为换门后得到车的概率是2/3,所以应该换。他们编写的程序也确实证明了这一点。

 但是,仍有一部分人坚持认为,换不换无所谓,概率都是1/2。为什么貌似简单的“玛丽莲问题”会产生这么多的争论呢?因为——  
     
  事实上,换不换取决于:主持人是随机选的呢?还是故意打开有羊的门呢?(1)如果主持人是随机选的,那么他和你的地位是等同的(都是随机选,先选后选无所谓),你们两个选到车的概率都是1/3,另一扇门后有车的概率也是1/3,所以换不换无所谓。(2)如果主持人是故意打开有羊的门,那么他选到车的概率当然是0,而你选到车的概率还是1/3,这样另一扇门后有车的概率就是2/3,所以应该换。这就是“2/3派”得势的理由。

  问题的症结在于:你作重新选择并不是随机选择,外星人做的选择是随机选择,两者的概率计算是不一样。 
  必须是随机选择,才能说概率不因人的选择而改变。争论不休都是忘了概率的定义。



下文代码为原创python代码,主要用于模拟该项过程,

import  random
def simple_select():
    temp = random.random()
    if temp > 0 and temp < 1/3:
        oc = 0
    elif temp >1/3 and temp < 2/3:
       oc =1
    else:
        oc =2
    return oc

def host_help(num):
    # num represents the nth door/box chosen by the guest
    a = [1,0,0]
    del a[num] # delete the chosen number
    nth=a.index(0) # find '0' index in the first place
    del a[nth]
    return a

a = [1,0,0] # A fortune Or None
count = [0,0]
for i in range(99999):
    num = simple_select()
    final_selected = host_help(num)
    if final_selected[0] == 1:
        count[1] = count [1]+1
        count[0] = count [0] + 1
    else:
        count[1] = count [1]+1  # the total selection is recorded in latter part
print('The Frequency of Selecting the Billion :  {}%'. format(count[0]/count[1]))

最终计算结果:

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值