三门两羊问题 - 蒙提霍尔问题
2026/5/21 19:26:34 网站建设 项目流程

你可能在社交媒体或者数学爱好者的讨论中听说过“三门问题”,个人觉得应该简单一点理解这个问题,不用看过多的公式。

什么是“三门问题”?

“三门问题”源自美国电视游戏节目《Let’s Make a Deal》。问题描述如下:

  1. 你面前有三扇门,其中一扇门后面有一辆汽车,另外两扇门后面是山羊。
  2. 你先选择一扇门(假设你选了门 A)。
  3. 主持人(知道门后隐藏的内容)会打开另一扇门(假设是门 B),露出一只山羊。
  4. 此时,主持人问你:你要保持原来的选择(门 A)吗?还是换到剩下的门(门 C)?

问题来了:换门和不换门哪个更有可能赢?

直觉 vs. 数学

直觉上,很多人认为剩下两扇门各有 50% 的概率,换不换都样。但概率论告诉我们,这种直觉是错的。

如果不换门

如果不换门,主持人的变动不会影响选中汽车的概率,即 1/3,即1/总门数。

如果换门

关键在于将测算拆分为两个步骤:

1️⃣ 主持人打开门以前

  • 初始选择汽车的概率:1/3
  • 初始选择山羊的概率:2/3

2️⃣ 主持人打开门以后
相当于主持人会帮你排除一个错误答案,现在就只有两个答案

  • 如果你最初选中汽车(1/3 概率),那不管主持人排除哪个答案,只要换门,都只会选中🐑,不会选中汽车,那选中汽车的概率就是0
  • 如果你最初选中山羊(2/3 概率),主持人会打开另一扇山羊门,只要换门,必定选中🚗,此时选中汽车的概率就是1

所以换门以后测算的概率应

P(换门获胜)=P(初始选山羊)×P(换门获胜∣初始选山羊)+P(初始选汽车)×P(换门获胜∣初始选汽车)P(\text{换门获胜}) = P(\text{初始选山羊}) \times P(\text{换门获胜} \mid \text{初始选山羊}) + P(\text{初始选汽车}) \times P(\text{换门获胜} \mid \text{初始选汽车})P(换门获胜)=P(初始选山羊)×P(换门获胜初始选山羊)+P(初始选汽车)×P(换门获胜初始选汽车)

代入数值:
P(换门获胜)=23×1+13×0=23 P(\text{换门获胜}) = \frac{2}{3} \times 1 + \frac{1}{3} \times 0 = \frac{2}{3}P(换门获胜)=32×1+31×0=32
所以:

策略赢的概率
不换门1/3
换门2/3

为什么直觉会错?

直觉认为“剩两扇门,各 50%”是错的,因为忽略了主持人的信息偏向性:

  • 主持人总是选择一扇有山羊的门打开,这并不是随机事件
  • 初始选择中未中汽车的概率较大(2/3),主持人的操作实际上增加了剩下那扇门的价值

所以换门策略选中的概率计算公式为:
P(换门获胜)=23×1+13×0=23 P(\text{换门获胜}) = \frac{2}{3} \times 1 + \frac{1}{3} \times 0 = \frac{2}{3}P(换门获胜)=32×1+31×0=32
同样如果,门数为doordoordoor,公式也可以拓展为:
P(换门获胜)=door−1door×1door−2+1door×0 P(\text{换门获胜}) = \frac{door - 1}{door} \times \frac{1}{door -2} + \frac{1}{door} \times 0P(换门获胜)=doordoor1×door21+door1×0

python代码测算,含循环测试和公式直接输出结果的代码

importrandomdeffun(switch:bool,door:int,times=1000000,log=False):""" switch: boolean, 是否需要更换门 door: 门的个数 times: 测试次数 log: 是否打印每一轮的日志 """correct,wrong=0,0foriinrange(times):answer=random.randint(0,door-1)options=set(range(door))guess=random.randint(0,door-1)info=f'\t[info_{i}] 答案是{answer},猜的是{guess}。'ifswitch:val=random.choice(list(options.difference({guess,answer})))guess=random.choice(list(options.difference({val,guess})))info+=f'主持人打开{val}, 猜测修改为{guess}。'ifanswer==guess:correct+=1info+='猜测正确'else:wrong+=1info+='猜测错误'iflog:print(info)print(f"共{door}门,{''ifswitchelse'不'}换门, 统计正确率为{(correct/(correct+wrong)):.4%}",)if__name__=='__main__':door=3# 先测一个转换的fun(False,door=door)# 再测一个不转换的fun(True,door=door)# 使用统计概率直接计算print(f"\n直接使用统计概率计算:\n"f"\t不转换的计算公式: 1 /{door}={1/door:.4%}\n"f"\t需转换的计算公式: (1 /{door}) * 0 + ({door-1}/{door}) * (1 /{door-2}) ={((door-1)/door)*(1/(door-2)):.4%}")

实际启示

  • 概率和直觉常常相反:遇到概率问题时,不要单靠感觉,要分析整个事件过程
  • 信息的来源与偏向:主持人的行为提供了额外信息,这是经典条件概率案例
  • 生活中的换门策略:遇到类似“选择与信息更新”的情境,换门或调整决策往往是更优解

总结

“三门问题”不仅是一个有趣的概率谜题,它还教会我们如何用逻辑和数学分析复杂决策。拆分测算步骤、结合信息更新的思路,是理解概率和理性决策的关键。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询