熬夜无聊刷b站的时候刷到了一个有趣的视频,讲的是一个概率论问题【三门问题】,感觉很有意思,就记了下来。
这是原视频链接:神奇的三门问题

简单介绍下三门问题:现在有三扇门,两扇门后是山羊,一扇门后是跑车,随机选择一道门,如果门后是跑车,就中奖,否则就是没中奖。首先随机选择一道门,则此时中奖的概率是三分之一即33.33%;然后从剩下的两扇门中打开一道后面是山羊的门,此时就只剩下最后一扇既没有打开也没有被选择的门。这时你有一次换门的机会,可以重新选择最后一道门,也可以选择不换。

那么应该是选择换门呢,还是仍然选择之前选中的那扇门?在一般人的思维,换或不换中奖的概率都是一样的,都是二分之一50%,换门其实上没有多大的意义;然而正确的选择却超乎常人的想象,此时应该换门,换门中奖的概率高达66.6%,不换门中奖的概率只有33.3%,换门赢的概率几乎是不换门赢的概率的两倍。

首先是不换门赢的概率,很简单就是最开始的三选一33.3%,后面的打开一扇是山羊的门的操作对赢的概率没有任何影响,并不是打开之后的二选一,因为之后排除掉一个错误选项并不会影响之前的选择的概率。

然后是换门赢的概率,这个的逻辑有点绕,理解起来要从反面来思考。首先什么时候是必赢的呢?当然就是第三扇门就是正确的选择的时候,此时换门就赢;这也就意味着第一次选择的门必定是错误的时候换门必赢,因为第二扇错误的门已经被打开了,也就是说换门赢的概率取决于第一次选择时选错的概率,而第一次选择时选错的概率是多少呢?66.6%。

总结来说,换门不换门赢的概率取决于第一次选择选对或者选错的概率,不换门 -> 第一次选对 -> 33.3%,换门 -> 第一次选错 -> 66.6%。

口说无凭,代码来证,换门赢的概率确实大约是66.6%。

object ThreeDoor {private val doors: List<Int> = listOf(0, 1, 2)private var winAfterNoExchange: Int = 0private var winAfterExchange: Int = 0private const val gameTimes: Int = 100000fun run() {for (i in 0 until gameTimes) {runOnce()}println("total times: $gameTimes, win no exchange times: $winAfterNoExchange, winning probability: ${ (winAfterNoExchange.toFloat() / gameTimes) * 100}")println("total times: $gameTimes, win exchange times: $winAfterExchange, winning probability: ${ (winAfterExchange.toFloat() / gameTimes) * 100}")}private fun runOnce() {val correct = doors.random()val select = doors.random()val openSheep = doors.getSheep(correct, select)if (isWinNoExchange(correct, select, openSheep)) {winAfterNoExchange += 1}if (isWinExchange(correct, select, openSheep)) {winAfterExchange += 1}}private fun isWinNoExchange(correct: Int, select: Int, openSheep: Int): Boolean {return select == correct}private fun isWinExchange(correct: Int, select: Int, openSheep: Int): Boolean {val selectAfterExchange = doors.first {(it != select) && (it != openSheep)}return selectAfterExchange == correct}private fun List<Int>.getSheep(correct: Int, select: Int): Int {return this.filter {  (it != correct) && (it != select) }.random()}
}

神奇的三门问题,到底换不换门相关推荐

  1. 有三个箱子,有一个中奖,你选定了一个箱子,主持人打开一个没有奖的箱子,问你换不换,是换概率大还是不换概率大

    有三个箱子,有一个中奖,你选定了一个箱子,主持人打开一个没有奖的箱子,问你换不换,是换概率大还是不换概率大?求原因. 美国20世纪70年代曾经有过这样一个电视节目:在节目中,节目参与者将在3扇门之间选 ...

  2. python羊车门问题_「羊车门」经典概率题中不换门选中车的概率是多少?

    今天用Python求解「羊车门」经典的概率问题,对概率学基础和Python语法的灵活运用有所收货. 本次「羊车门」求解过程采用的是:穷举法计算概率已验证概率学基础理论.期间重点借鉴了'奥卡姆剃刀的博客 ...

  3. 三门问题扩展到N门问题的解法探讨

    前言 三门问题也称为蒙提霍尔问题.蒙特霍问题或蒙提霍尔悖论,出自美国的电视游戏节目Let's make a deal.来自 Craig F. Whitaker 于1990年寄给<展示杂志> ...

  4. 不换门可以改开门的方向吗_不换门可以改开门的方向吗?

    国家消防技术标准规定,对住宅入户门的开放方向没有规定,只有营业性场所的安全出口门要向疏散方向打开.也就是说,通常是对外开放.对于住宅建筑,如果出入门向外打开,将减少疏散通道的有效宽度,影响室内消火栓的 ...

  5. 不换门可以改开门的方向吗_内开门可以改外开门吗

    众所周知,房门有内开和外开两种形式,但很多人认为内开门占用室内地方,因此想将内开门改成外开门.那么内开门可以改外开门吗?内开门和外开门的优缺点是什么呢?下面就跟着小编一起来详细了解一下吧! 内开门可以 ...

  6. 太阳光是平行光吗_阳光照耀,万物生长——神奇的太阳光,到底是什么?

    光,是人类生存必须的一种能量.每天,我们等待太阳升起,阳光充沛的春夏季节,是万物野蛮生长的季节,充满生机和活力. 阳光,是地球生命的起源.那么,对于我们每天都亲密接触的"阳光",你 ...

  7. 20230516使用python3确认三门问题

    最烧脑的悖论,意识为什么会影响未来?颠覆你认知的三门问题播报文章 小红虾实验室 2023-04-09 06:08 四川 好看视频优创联盟,优质科学领域创作者 关注 对于懂概率的人来说,他中大奖的概率将 ...

  8. 三门问题的扩展用c++模拟

    三门问题的原始问题,大家已经讨论出了结论,获胜的概率是2/3 对于一个扩展问题--后来的参与者 主持人打开一扇有羊的门后,参加游戏的人选择换个门,因为换过来是2/3嘛!这时候主持人又从场外找来一个参与 ...

  9. 蒙提霍尔问题(The Monty Hall Problem)解析(贝叶斯分析、Python仿真)

    目录 0. 前言 1. 什么是蒙提霍尔问题(Monty Hall problem) 2. Naive approach:分类讨论 3. Python蒙特卡洛仿真 4. 直观的理解1 5. 贝叶斯方法 ...

  10. html5学习12:其他文本元素

    1.br元素,强制换行 把后续的内容转移到新行上. this is,<br/>haha. 2.wbr元素,安全换行 html5新增的,用来表示长度超过当前浏览器窗口的内容适合在此换行,到底 ...

最新文章

  1. 创建第一个freemarker
  2. web前端----jQuery属性操作
  3. flex 3.0序列号
  4. ligertree内容过多导致崩溃_师傅崩溃了!自身是8年的老师傅,料也没问题,但每次都堵管...
  5. Linux多个端口组合,iptables使用multiport 添加多个不连续端口
  6. 虚拟机ubuntu安装ssh服务器,经过Xshell远程链接虚拟机VMVARE中的Ubuntu
  7. [转]mpvue中的小程序调用系统自带查看图片的功能
  8. SQL必知必会-创建表和操纵表
  9. Linux系统管理技术(3)
  10. 抗住 60 亿次攻击,起底阿里云安全的演进之路 | 问底中国 IT 技术演进
  11. 转:移动网络下的性能优化之省电篇
  12. 十大java视频学习网站
  13. H5弹出是否打开微信APP的方式
  14. Unity图片闪烁效果
  15. uniapp导航切换(一个页面可以切换3个子页面)
  16. (传统安装--生信软件)——FastQC 下载安装
  17. 简单答题系统(判断题)
  18. MATLAB学习笔记:行列式及其应用
  19. 智能摄像头为什么受到这么多人青睐?米家、智汀带你了解一下
  20. div的display属性和visibility属性

热门文章

  1. SMTP 550错误
  2. JZOJ 6310.glo【LIS】【线段树】
  3. CF949D Curfew
  4. 台式计算机的电流是多少,电脑台式机一天耗电大概是多少
  5. 为知笔记Typora编辑器上传图片失效(20.5.16)
  6. java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, recieved org
  7. 好用的图形工具yEd Graph Editor
  8. thinkphp5中带参数跳转
  9. STM32HAL库微秒延时函数的实现---DWT和SysTick
  10. 无法使用内置管理员账户打开应用商店