【每周一坑】三门问题
《卖油翁》欧阳修
陈康肃公尧咨善射,当世无双,公亦以此自矜。尝射于家圃,有卖油翁释担而立,睨之,久而不去。见其发矢十中八九,但微颔之。
康肃问曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“无他,但手熟尔。”康肃忿然曰:“尔安敢轻吾射!”翁曰:“以我酌油知之。”乃取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿。因曰:“我亦无他,惟手熟尔。”康肃笑而遣之。
此与庄生所谓解牛斫轮者何异?
陈尧咨善射也好,卖油翁钱孔倒油而不湿也好,其实没有什么独门秘籍,只不过是“熟能生巧”四字罢了。
学过一门乐器或一项体育运动的人一定都有体会:了解基本规则和方法只是个开始,离真正掌握它还差了成百上千个小时的练习。而要到达精通,更是需要再投入上万小时。
编程当然也是如此。
如果你还在问,学习编程有什么捷径,那我给你的答案就是:赶紧打开你的电脑,去写代码。每完成一段程序,你就离目标更近了一步。
每个程序员都是一行行代码堆砌出来的。
于是,时隔许久,本教室的“每周一坑”栏目又回归啦!
每个星期,我们会给大家出一道题,在下一周做讲解。
你也可以把自己的代码上传到 github 或类似代码托管平台后,以留言的方式提交在文章下面。我们每次将从上一周的读者代码中选出一份进行分享。
关于代码提交可参考这篇:极简 Github 上手教程
若因网络连接不畅,也可选择国内的 git@osc、coding.net 等类似服务。
三门问题
三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目 Let's Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Monty Hall)。
参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机率?
要求:
通过程序模拟三门问题,并重复进行大量测试,统计换门与不换门的情况下,赢得汽车的概率。
示例:
>>> python three_doors.py
total: 100000
switch: xxx
switch win: xxx (xx%)
stay: xxx
stay win: xxx (xx%)
近期文章推荐阅读:
【码上行动-零基础Python入门】
课程开放中,回复“课程”了解详情或后台咨询
欢迎加入
Crossin的编程教室
crossincode.com
新手入门QQ群:453300655
微信群请加 crossin11 后留言入群
点击左下角“阅读原文”,查看更多学习资源