利用Python分析羊车门问题
题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。
1、按照你的第一感觉回答,你觉得不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化?
答:换几率更高,在电影《决胜点》中看过这个问题。
2、请自己认真分析一下“不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化?” 写出你分析的思路和结果。
答:可以把这题当作一个概率问题,分析如下:
设三门后面分别为车,A羊,B羊。则第一次选门的时候,可以分为以下三种等概情况:
情况1:车 1/3
情况:A羊 1/3
情况:B羊 1/3
接下来,若不更换所选门:
情况:得车
情况:不得
情况:不得
若更换所选门:
情况:不得
情况:得
情况:得
显然,换的情况概率为2/3,高于不换的1/3。故换选择有更高的几率。
此外,还可以用一种我自认为容易理解的解释来说明我的答案:
在主持人打开羊门之后,剩下的门无非一扇车门,一扇羊门。若我们换门,那么必然会改变先前的结果。(车门变羊门,羊门变车门)。
于是可以认为,
先前选到车门的概率==更换后选到羊门的概率;
同理,
先前选到羊门的概率==更换后选到车门的概率;
也就是说,更换后选到车门的概率是2/3。而先前选到车门不换的概率是1/3。还是换选择概率更高。
注:和同学讨论过后,这里提一下我认为为什么答案不是1/2。
如果换与不换得车概率均为1/2。那么题目就变为:“主持人先打开一扇有羊的门,在剩下的两个门中你进行选择,求得车的概率。”
我认为关键的是:若你不更换门的话,主持人开门这一事件并不影响你选到的是车门的概率。
3. 请设法编写程序验证自己的想法,验证的结果支持了你的分析结果,还是没有支持你的分析结果,请写出程序运行结果,以及其是否支持你的分析。
答:基于上述分析,我认为其实根本不必模拟追踪门的过程。
方法如下:1).声名两个变量,man和car,分别代表你的初次选择和车门的位置。
再声名两个变量,换门获胜数与不换门获胜数,用于记录结果。
2).利用random库中的randint产生1~3范围内的随机数,对两个变量分别赋值。
3).若赋值后,car==man,则说明一开始选择的便是车门,
此时,不换的获胜数+1;
否则,意味着一开始选择的是羊门,则换的获胜数+1。
4).将上述过程重复足够大的基数,计算概率,验证结论。
实验结果如下:分别将过程重复遍,10000遍,十万遍,一百万遍。
重复基数越大,不换与换获胜的几率分别越接近于1/3与2/3。验证了之前的猜想。
4、请附上你的代码。
代码如下:
import random as r #总次数
total=1000000 #1000,1W,10W,100W
#换与不换的获胜次数
win1=0
win2=0 for i in range(total):
#模拟选择过程
man=r.randint(1,3)
car=r.randint(1,3)
#结果:一开始为车门,不换+1.
# 否则则一开始为羊门,换+1.
if man==car:
win1+=1
else:
win2+=1 print("在{}次实验中:".format(total))
print("若不更改门,获胜概率为{:.3}%.".format((win1/total)*100))
print("若更改门,获胜概率为{:.3}%.".format((win2/total)*100))
利用Python分析羊车门问题的更多相关文章
- 利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 分类: Python ArcGIS for desktop ArcGIS for server 2015-08-06 19:49 3人阅读 评论(0) 收藏
最近,一直纠结一个问题:做好的GP模型或者脚本在本地运行,一切正常:发布为GP服务以后时而可以运行成功,而更多的是运行失败,甚至不能知晓运行成功后的结果输出在哪里. 铺天盖地的文档告诉我,如下信息: ...
- 利用python分析泰坦尼克号数据集
1 引言 刚接触python与大数据不久,这个是学长给出的练习题目.知识积累太少,学习用了不少的时间.尽量详细的写,希望对各位的学习有所帮助. 2 背景 2.1 Kaggle 本次数据集来自于Kagg ...
- 利用python分析nginx日志
最近在学习python,写了个脚本分析nginx日志,练练手.写得比较粗糙,但基本功能可以实现. 脚本功能:查找出当天访问次数前十位的IP,并获取该IP来源,并将分析结果发送邮件到指定邮箱. 实现前两 ...
- 利用 python 分析基金,合理分析数据让赚钱赢在起跑线!
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 白玉无冰 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...
- 利用 Python 分析微信好友性别和位置
今天用到一个非常有意思的库——itchat,它已经完成了 wechat 的个人账号API接口,使爬取个人微信信息更加方便. 下载 爬取微信好友信息 这样就将你所有微信好友的信息都返回了,我们并不需要 ...
- 利用python数据分析与挖掘相关资料总结
小生今年研二,目前主要从事软件工程数据挖掘与分析.之前一直苦于找不到一个从数据预处理.数据分析.数据可视化和软件建模的统一平台.因此,小生辗转反辙学习了java,R语言,python,scala等等. ...
- 羊车门问题(Python)
羊车门问题(结对作业) 在完成本题之前,请仔细阅读下面内容: 题目描述:有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会 ...
- 利用python进行微信好友分析
欢迎python爱好者加入:学习交流群 667279387 本文主要利用python对个人微信好友进行分析并把结果输出到一个html文档当中,主要用到的python包为itchat,pandas,py ...
- 利用Python进行异常值分析实例代码
利用Python进行异常值分析实例代码 异常值是指样本中的个别值,也称为离群点,其数值明显偏离其余的观测值.常用检测方法3σ原则和箱型图.其中,3σ原则只适用服从正态分布的数据.在3σ原则下,异常值被 ...
随机推荐
- 访问权限修饰符-static-final-this-super-匿名对象
1.this关键字的作用 1)调用本类中的属性; 2)调用本类中的构造方法;且只能放首行,且必须留一个构造方法作为出口,即不能递归调用 3)表示当前对象; 2.匿名对象 ...
- Android--View事件传递
Android--View事件传递 View事件传递首先要明白以下要素: 事件就是MotionEvent.该对象包含了传递的事件中的所有信息 事件的来源是Window(即PhoneWindow),包含 ...
- django之母版的继承
模板继承示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- Easyui validatebox后台服务端验证
Easyui validatebox的验证提示十分好用,可是在实际项目的运用中,经常会遇到需要服务器验证后并返回验证结果信息,比如验证用户名.手机号.邮箱是否已存在.于是就想着怎么拓展Easyui的验 ...
- CentOS7.2上搭建httpbin环境
CentOS7上搭建httpbin环境 1.安装python31)安装python3.6可能使用的依赖yum -y install openssl-devel bzip2-devel expat-de ...
- HDU 4352 XHXJ's LIS (数位DP,状压)
题意: 前面3/4的英文都是废话.将一个正整数看成字符串,给定一个k,问区间[L,R]中严格的LIS=k的数有多少个? 思路: 实在没有想到字符0~9最多才10种,况且也符合O(nlogn)求LIS的 ...
- ueditor1_3_6 一点问题记录
文件:getRemoteImage.php 第49行: if ( !in_array( $fileType , $config[ 'allowFiles' ] ) || stristr( $heads ...
- Java 原型模式(克隆模式)
Java 的设计模式有 23 种,前段时间小编已经介绍了单例模式,由于我们在学习 Spring 的时候在 bean 标签的学习中碰到了今天要讲的原型模式,那么小编就已本文来介绍下原型模式. 原型模 ...
- 【转】 iOS学习之NSBundle介绍和使用
bundle是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle, cocoa提供了类NSBun ...
- JS中的作用域和作用域链
本文原链接:https://cloud.tencent.com/developer/article/1403589 前言 作用域(Scope) 1. 什么是作用域 2. 全局作用域和函数作用域 3. ...