手机版
你好,游客 登录 注册
背景:
阅读新闻

Python实现蒙提霍尔问题

[日期:2014-03-08] 来源:firefall.cc  作者:Linux [字体: ]

为了体现专业,我在标题处用了一个高端大气上档次的英文名字来描述此问题,实际上这个问题有个土鳖名字,叫羊车问题或者三门问题。

像我这种博学多识的高科技人才,长这么大还是头次听说这么高深的问题。所以为了继续保持我的博学多识,我决定深入研究下。

最近的Python课上,老师提出用python还原三门问题。并探讨下“选择换门”还是“坚持选择”的概率性。

先用代码实现功能:

#coding:utf-8
importrandom
 
#构建三扇门
door1=1
door2=2
door3=3
 
#构建门后的车
car=random.randint(1,3)
 
#开挂。。提示车子在哪扇门后面
#print "car is in the door"+str(car)
 
#输入一扇门对应的数字
pick1=raw_input("please pick one of the doors: ")
pick1=int(pick1)
 
#按照原版的孟缇霍尔问题,第一次不论你选择对还是错,主持人都会按照套路出牌:“你确定吗?真的不改了吗?你他妈为何这么自信?!”
#if pick1 == car:
# print "you got the car!"
#不管你第一次选择对错,主持人都会给你打开一扇错误的门,然后让你二选一
#else:
while1:
kick1=random.randint(1,3)
kick1=int(kick1)
ifkick1!=car andkick1!=pick1:
print"now kick a sheep door:door"+str(kick1)+",please try again"
 
pick2=raw_input(": ")
pick2=int(pick2)
ifpick2==car:
print"you got the car finally!"
break
else:
print"you got wrong!"
break

此后我在这个程序的基础上做了修改,分别自动执行100遍两种选择,并记录结果。统计如下:

下载
太自信的结果,100次只猜中了29次,猜错71次。

 

下载 (1)
有些时候主持人还是靠谱的,中奖率66%。

 

过后的几天我把这个问题分享给公司同事,在没经过用心思考的情况下(其实没差,我相信他们用不用心都答不对的- -),他们几乎都觉得两种结果应该都是50%的猜中概率,只有数值策划,他想了一会说概率应该不一样。而且和我讲什么几率论(够了我根本听不懂。。

后来我用自己的理解,解释了一下为什么概率是1/3和2/3。不一定对,但是我觉得很容易理解:

A,B,C三个门,第一次任意选,选中的概率是1/3,这一步是毋庸置疑的。

A B C
1/3 1/3 1/3

如果我们选择A,中奖概率是1/3
假如我们把B和C看做一个整体‘BC’,那么‘BC’的中奖概率是2/3,主持人剔除一个错误的答案,前提是他不会剔除你选择的那个门,其实就是帮我们把B和C变成了一个整体,这样,A的概率还是1/3,转而选择‘BC’,则概率为2/3。

通过一步步的深入研究,我发现这个问题在一部based on a true story电影《决胜21点》中也有提及,说来惭愧,对于一个在棋牌游戏公司打工的人来说,我对这种数学概率论知识近乎残障。。所以我决定开始恶补数学,请问哪能下载《决胜21点》?

延伸阅读:

1.据说全世界智商最高的女人—Marilyn vos Savant,在她的杂志专栏中声称三门问题中选择更换后猜中的概率更高。结果在美国引发了各种专家学者的声讨:人们寄来了数千封抱怨信,很多寄信人是科学老师或学者。一位来自佛罗里达大学的 读者写道:“这个国家已经有够多的数学文盲了,我们不想再有个世界上智商最高的人来充数!真让人羞愧!”另一个人写道:“我看你就是那只山羊!”美国陆军 研究所的埃弗雷特·哈曼写道,“如果连博士都要出错,我看这个国家马上要陷入严重的麻烦了。”

2.如“英特尔芯片”神准算牌能力的华裔“赌圣”—马恺文(Jeff Ma),《决胜21点》这部电影就是根据他的故事改编。

Python 的详细介绍请点这里
Python 的下载地址请点这里

推荐阅读:

《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

linux
相关资讯       Python教程  蒙提霍尔问题 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款