三门问题~概率问题之反直觉

情景导入:

原问题:

三门问题,又称蒙提霍尔问题,是源自博弈论的数学游戏问题,大致出自美国的电视游戏节目Let's Make a Deal。问题的名字来自该节目的主持人蒙提·霍尔。

这个游戏的玩法是:参赛者会看见三扇关闭的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门就可以赢得该汽车,而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人会开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。

问题是:换另一扇门是否会增加参赛者赢得汽车的机率?如果严格按照上述的条件的话,答案是会。换门的话,赢得汽车的机率是2/3。不换门的话,赢得汽车的机率是1/3。

这个问题的答案违反直觉,因为人们往往会认为,已经打开了一扇有山羊的门,所以汽车最有可能在那两扇未打开的门中。然而,如果我们按照这种逻辑思考,那么赢得汽车的机率就会降低。因此,我们应该选择换门,这样才有可能赢得汽车。

数学分析+实验证明:

若有A,B,C三个门

1,假设参赛者选择了A门

2,主持人选择的B门(主持人选的门里无车)

3,参赛者决定换不换门

从直觉上看这个概率不就是1/2吗,就剩两个门了。

但有时候看到的也不一定为真,容易掉入惯性思维的陷阱。

正所谓实践是检验真理的唯一标准,可以用代码模拟实验证明

C++的代码可以参考使用蒙特卡洛方法模拟三门问题(C语言)_三门问题c语言_小沐想秃头的博客-CSDN博客

通过代码模拟实验可以看出来A 中奖的概率大约为1/3,换门的中奖几率约为2/3。

很显然概率并不是看起来的1/2,接下来用数学方法证明:

说到概率的计算就不得不提一下贝叶斯定理,不知道的可以去网上搜,

这里要用到贝叶斯公式:P(A|B) = P(B|A) * P(A) / P(B);

过程:

设主持人在参赛者选了A的基础上选择了B门为事件D;

我们要的答案是 P(A|D)=P(D|A)*P(A)/P(D);

P(A)=1/3;

P(D|A)=1/2;   (表示A门有汽车的情况下,主持人选择B门的概率)

P(D)=1/2;      (P(D)=P(D∣A)P(A)+P(D∣B)P(B)+P(D∣C)P(C))

则: P(A|D)=P(D|A)*P(A)/P(D) = (1/2 * 1/3)  /1/2=1/3;

所以可知换门中奖给概率更高;

例题1:

题目

摸奖(开盒简单版)

时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
难度: 简单
出题人: asily

描述

泉此方去SOS团参加派对, 在派对上有一个抽奖活动, 凉宫春日是主持人, 凉宫春日说:“这里有n个奖盒, 只有一个奖品”, 泉此方成为了幸运观众, 他选择了第一块奖盒,而这时,知道哪个盒子里面藏有奖品的凉宫春日,打开了m个盒子,里面什么也没有。接着,凉宫春日走向泉此方说,“你现在还坚决选择第一块奖盒吗,要不要改变你的选择?
泉此方很想要奖品, 他想要最大化抽中奖的概率, 但这个问题难到泉此方了, 请你帮帮此方做出抉择

输入描述

输入有两个用空格隔开的正整数 n,m(3≤n≤109,0≤m<n−1)

输出描述

输出只有一个字符串表示你的选择
"YES"表示改变选择获奖概率最大
"NO"表示不换获奖概率大
“no thing”表示获奖概率一样大(当获奖概率一样大时请输出此项)

用例输入 1 

3 1

用例输出 1 

YES

题解

这个题概率的计算方法和上面的一样

算出如果不换门中奖的概率 P1=1/n;

则其他门中奖的总概率为P2=1-P1;

其他门中奖的数量:num=n-m-1;

则其他每个门中奖的概率:P3=P2/num;

设 x=P1-P3=1/n-(1-1/n)/(n-m-1)

假设n-m-1=n,此时x=1/n^2>0;

因为n-m-1>n,即减数减小,x>1/n^2>0;

所以无论n和m为何值换的中奖的概率更大

*不过要注意m=0的情况,当m=0时,概率相同

例题2:

题目

小飞棍又来喽~~(开盒困难版)

暂无标签

时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
难度: 简单
出题人: czhyyds

描述
众所周知,集训队的大家都喜欢小飞棍,但是很可惜小飞棍的数量并不够人手一只。
ll学长和mbd学长都想要小飞棍,但是小飞棍只剩一只了。于是,ll学长和mbd学长想通过游戏的方法获得小飞棍的所有权,游戏规则如下:
1 游戏中会有n个盒子,mbd学长会将小飞棍会随机放入一个盒子中。
2 ll学长锁定一个盒子后,mbd学长会打开m个没有装小飞棍的盒子(不能打开ll学长锁定的那个盒子)。
3 之后ll学长可以选择打开当前锁定的盒子或者换一个没有打开的盒子打开。
如果ll学长开出小飞棍,则小飞棍归ll学长所有,否则归mbd学长所有。你可以告诉ll学长他获得小飞棍的最大概率是多少吗?

输入描述

第一行输入两个数n(3<=n<=1000)和m(0<=m<n-1)。

输出描述

输出ll学长能开出小飞棍的最大概率(结果保留六位小数)。

用例输入 1 

4 0

用例输出 1 

0.250000

用例输入 2 

3 1

用例输出 2 

0.666667

题解

上一个例题弄明白了,这个就水到渠成了;

这个只是让把概率打印出来,可以看上一个题的过程

不换的概率为:P1=1/n;(不过要的是概率最大值,通过上一个题可以知道这个可以不考虑了)

其他门每一个的概率为:P2=(1-1/n)/(n-m-1);

直接计算就行了

总结

在处理概率问题时一定要分清独立事件和条件事件,不要轻易的相信自己的惯性思维,

 实践才是检验真理的唯一标准,通过这个问题也让我们感受到了数学的魅力........

当程序猿遇见数学,变秃了,也变强了,嘿嘿

小趴菜第一次写博客有错误请积极指出!

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值