什么是三门问题
- 三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let’s Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Monty Hall)。
- 参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。
- 问题是:换另一扇门会否增加参赛者赢得汽车的机率?
- 如果严格按照上述的条件,即主持人清楚地知道,自己打开的那扇门后是羊,那么答案是会。不换门的话,赢得汽车的几率是1/3。换门的话,赢得汽车的几率是2/3。
- 这个问题亦被叫做蒙提霍尔悖论:虽然该问题的答案在逻辑上并不自相矛盾,但十分违反直觉。这问题曾引起一阵热烈的讨论。
其他解答
- 知乎上的一个解释更通俗易懂:蒙提霍尔问题(又称三门问题、山羊汽车问题)的正解是什么? - Devymex Wang的回答 - 知乎
代码验证
- 代码如下(java):
public class test { @Test public void test() throws Exception { //三个门 Boolean[] door = {false, false, true}; //成功次数 int success = 0; //测试次数 int num = 10000; for (int i = 0; i < num; i++) { //我选择的门 Integer me = new Random().nextInt(3); //主持人选择一个山羊的门 Integer emcee; while (true) { emcee = new Random().nextInt(3); if (me != emcee && !door[emcee]) { break; } } //如果door[me]==false,说明换门后成功 if (!door[me]) { success++; } } System.out.println("成功:" + success + ",总次数:" + num + ",换门的正确率:" + Double.valueOf(success) / num); } }
- 执行结果:
成功:6638,总次数:10000,换门的正确率:0.6638
- 即如果换门,会增加参赛者赢得汽车的机率。