羊车门——概率论理解与程序检验

羊车门问题

有三扇关闭的门,一扇门后面停着汽车,其余的门后面是羊,只有主持人知道每扇门的后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。请问:参赛者更换选择后能否增加猜中汽车的机会?

这是一道概率论的问题

虽然学过概率论,但是已经很久没有使用过了,我这里就仅凭着自己残存的一点知试来尝试解答一下吧。
首先参赛者可以做两次选择,每次选择产生一个结果,最后组合起来是四种情况

  1. 第一次选择汽车,第二次选择汽车
  2. 第一次选择汽车,第二次选择羊
  3. 第一次选择羊,第二次选择汽车
  4. 第一次选择羊,第二次选择

但是在第二次选择进行前,我们是可以操控的,也就是说,我们是否更换选择,这里又引出了两种不同的情况,换,还是不换。实际上这和我们前面的四种结果是对应的,更换选择就会出现 2,3两种情况,不更换就会出现 1,4两种情况。
为了方便讨论,我们将更换和不更换分开讨论。
首先确定我们的事件:
事件A:第一次选中了汽车
事件B:第二次选中了汽车
P(A) = 1/3 P(~A) = 2/3
P(B) = P(B|A)P(A) + P(B|~A)P(~A)

选择更换

如果我们一开始选中了汽车,当主持人打开一扇门后,剩下的一扇门里一定是羊,因此如果我们此时选择更换,那么最终结果就是选中羊

P(B|A) = 0

如果我们一开始选中了羊,主持人打开一扇门之后,我们更换选择,最后选到的一定是汽车

P(B|~A) = 1

此时我们最终选择汽车的概率为

P(B) = P(B|A)P(A) + P(B|~A)P(~A) = 2/3

最终猜中汽车的概率为三分之二

选择不更换

同理
如果我们一开始选中了汽车,当主持人打开一扇门后,剩下的一扇门里一定是羊,因此如果我们此时选择不更换,那么最终结果就是选中汽车

P(B|A) = 1

如果我们一开始选中了羊,主持人打开一扇门之后,我们更换选择,最后选到的一定是羊

P(B|~A) = 0

此时我们最终选择汽车的概率为

P(B) = P(B|A)P(A) + P(B|~A)P(~A) = 1/3
结果是更改选择,猜中概率增大

最终的结果是更改选择,猜中的概率是2/3,而不更改猜中的概率是1/3

我们用程序验证一下

假设我们选择更换选择

import random
car = random.randint(0,2)					#车的位置
getCar = 0									#记录猜中车的次数
getSheep = 0								#记录猜中羊的次数
times = 10000								#尝试一万次
for i in range(times):
	firstChoice = random.randint(0,2)		#第一次做出选择
	if firstChoice == car:					#当第一次选中汽车时
		getSheep += 1
	else:									#第一次选中羊时
		getCar += 1
print("中奖的概率{:.4f}".format(getCar/times))

最终结果为

中奖的概率0.6603

你可能感兴趣的:(算法,语言入门练习,数学,算法,python,概率论)