三门问题

蒙提霍尔问题,亦称为蒙特霍问题或三门问题(英文:Monty Hall problem),是一个源自博弈论的数

学游戏问题,大致出自美国的电视游戏节目 Let's Make a Deal。问题的名字来自该节目的主持人蒙提

·霍尔(Monty Hall)。

这个游戏的玩法是:参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇

门就可以赢得该汽车,而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的

时候,节目主持人会开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换

另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机会率?如果严格按照上述的条

件的话,答案是会—换门的话,赢得汽车的机会率是 2/3。

这条问题亦被叫做蒙提霍尔悖论:虽然该问题的答案在逻辑上并不自相矛盾,但十分违反直觉。这问题

曾引起一阵热烈的讨论。

问题

以下是蒙提霍尔问题的一个著名的叙述,来自 Craig F. Whitaker 于1990年寄给《展示杂志》

(Parade Magazine)玛丽莲·沃斯·莎凡特(Marilyn vos Savant)专栏的信件:假设你正在参加一

个游戏节目,你被要求在三扇门中选择一扇:其中一扇后面有一辆车;其余两扇后面则是山羊。你选择

了一道门,假设是一号门,然后知道门后面有什么的主持人,开启了另一扇后面有山羊的门,假设是三

号门。他然后问你:“你想选择二号门吗?”转换你的选择对你来说是一种优势吗?

以上叙述是对 Steve Selvin 于1975年2月寄给 American Statistician 杂志的叙述的改编版本。如上

文所述,蒙提霍尔问题是游戏节目环节的一个引申;蒙提·霍尔在节目中的确会开启一扇错误的门,以

增加刺激感,但不会容许玩者更改他们的选择。如蒙提·霍尔寄给 Selvin 的信中所写:如果你上过我

的节目的话,你会觉得游戏很快—选定以后就没有交换的机会。—(letsmakeadeal.com)

Selvin 在随后寄给 American Statistician 的信件中(1975年8月) 首次使用了“蒙提霍尔问题”这个

名称。

一个实质上完全相同的问题于1959年以“三囚犯问题”(three prisoners problem)的形式出现在马

丁·加德纳的《数学游戏》专栏中。葛登能版本的选择过程叙述得十分明确,避免了《展示杂志》版本

里隐含的前提条件。

这条问题的首次出现,可能是在1889年约瑟夫·贝特朗所著的 Calcul des probabilités 一书中。 在

这本书中,这条问题被称为“贝特朗箱子悖论”(Bertrand's Box Paradox)。

Mueser 和 Granberg 透过在主持人的行为身上加上明确的限制条件,提出了对这个问题的一种不含糊

的陈述:

    * 参赛者在三扇门中挑选一扇。他并不知道内里有什么。
    * 主持人知道每扇门后面有什么。
    * 主持人必须开启剩下的其中一扇门,并且必须提供换门的机会。
    * 主持人永远都会挑一扇有山羊的门。
          o 如果参赛者挑了一扇有山羊的门,主持人必须挑另一扇有山羊的门。
          o 如果参赛者挑了一扇有汽车的门,主持人随机在另外两扇门中挑一扇有山羊的门。
    * 参赛者会被问是否保持他的原来选择,还是转而选择剩下的那一道门。

转换选择可以增加参赛者的机会吗?

解答

问题的答案是可以:当参赛者转向另一扇门而不是继续维持原先的选择时,赢得汽车的机会将会加倍。

有三种可能的情况,全部都有相等的可能性(1/3):

    * 参赛者挑山羊一号,主持人挑山羊二号。转换将赢得汽车。
    * 参赛者挑山羊二号,主持人挑山羊一号。转换将赢得汽车。
    * 参赛者挑汽车,主持人挑两头山羊的任何一头。转换将失败。

在头两种情况,参赛者可以透过转换选择而赢得汽车。第三种情况是唯一一种参赛者透过保持原来选择

而赢的情况。因为三种情况中有两种是透过转换选择而赢的,所以透过转换选择而赢的概率是2/3。

如果没有最初选择,或者如果主持人随便打开一扇门,又或者如果主持人只会在参赛者作出某些选择时

才会问是否转换选择的话,问题都将会变得不一样。例如,如果主持人先从两只山羊中剔除其中一只,

然后才叫参赛者作出选择的话,选中的机会将会是1/2。不过若主持人不知道哪扇门有羊,在参赛者选

择后仍开出羊,此时透过转换选择而赢的概率仍为2/3。

另一种解答是假设你永远都会转换选择,这时赢的唯一可能性就是选一扇没有车的门,因为主持人其后

必定会开启另外一扇有山羊的门,消除了转换选择后选到另外一只羊的可能性。因为门的总数是三扇,

有山羊的门的总数是两扇,所以转换选择而赢得汽车的概率是2/3,与初次选择时选中有山羊的门的概

率一样。

更简单易懂的解答

其实只要将没被参赛者指定的所有门作为一个整体来看待,问题就简单多了:

当参赛者挑选了一个门(A)之后,这个门后是汽车的概率为1/3,剩下两个门(B和C)作为一个整体的

话概率为2/3。而主持人打开剩下两个门当中一个有山羊的门(B)后,则剩下两个门(B和C)的概率仅

仅由那个没打开的门(C)独自承担,因此那个门(C)的概率为 2/3。
### 三门问题的Java实现代码示例 以下是基于三门问题逻辑的Java代码实现,该代码模拟了参赛者在选择是否更门时的概率变化情况。代码通过多次实验验证了改变选择会增加获胜概率的结论。 ```java import java.util.Random; public class MontyHallProblemSimulation { public static void main(String[] args) { int totalSimulations = 100000; // 模拟次数 int winBySwitching = 0; // 记录门后获胜的次数 int winByStaying = 0; // 记录门后获胜的次数 Random random = new Random(); for (int i = 0; i < totalSimulations; i++) { // 随机设置车的位置(0, 1, 或 2) int carPosition = random.nextInt(3); // 参赛者第一次随机选择一扇门 int firstChoice = random.nextInt(3); // 主持人打开一扇没有车且是参赛者选择的门 int openedDoor = hostOpensDoor(carPosition, firstChoice); // 如果参赛者决定门,则计算新的选择 int switchedChoice = switchDoor(firstChoice, openedDoor); // 判断结果 if (firstChoice == carPosition) { winByStaying++; } if (switchedChoice == carPosition) { winBySwitching++; } } // 输出结果 System.out.println("总模拟次数: " + totalSimulations); System.out.println("坚持原选择获胜次数: " + winByStaying + " 胜率: " + ((double) winByStaying / totalSimulations)); System.out.println("门后获胜次数: " + winBySwitching + " 胜率: " + ((double) winBySwitching / totalSimulations)); } // 主持人打开一扇没有车且是参赛者选择的门 private static int hostOpensDoor(int carPosition, int firstChoice) { for (int door = 0; door < 3; door++) { if (door != carPosition && door != firstChoice) { return door; } } return -1; // 应发生 } // 参赛者门后的选择 private static int switchDoor(int firstChoice, int openedDoor) { for (int door = 0; door < 3; door++) { if (door != firstChoice && door != openedDoor) { return door; } } return -1; // 应发生 } } ``` ### 代码解析 1. **模拟过程**:程序通过`totalSimulations`变量设定模拟次数,模拟参赛者选择、主持人开门以及参赛者是否门的过程。 2. **随机生成车的位置**:使用`Random`类随机生成车的位置。 3. **主持人行为**:通过`hostOpensDoor`方法模拟主持人打开一扇没有车且是参赛者选择的门。 4. **参赛者门逻辑**:通过`switchDoor`方法模拟参赛者门后的选择。 5. **统计胜率**:分别统计坚持原选择和门后的获胜次数,并计算胜率。 根据模拟结果,可以观察到门后的胜率接近2/3,而坚持原选择的胜率为1/3[^2]。 ### 结论 通过上述代码的模拟,可以验证三门问题中改变选择会使获奖概率增加的结论。这与数学理论分析的结果一致[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值