反直觉的一个游戏 - 三门问题 (Monty Hall problem)

三门问题,也叫蒙提霍尔问题(Monty Hall Problem)

以电视节目 - Let's make a deal的主持人蒙提霍命名的一个反直觉问题。

游戏简介

假设有3个门。 其中一个后面藏着宝藏,其余2个都是空门(美国节目中1个后面有汽车,其余的2个是山羊)。 

反直觉的一个游戏 - 三门问题 (Monty Hall problem)_第1张图片

游戏开始:

首先你先选择一张门,

选好后,主持人帮你在其余2扇没有被选择的门中打开一扇没奖的门。

 

这时候你有一个选择权, 换门还是不换门?

直觉上换不换几率都是50%,那到底几率是多少? 换是不是得奖的机会大一些?

可以用代码来模拟一遍。python

编程就是一步一步来,当然有时候要想清楚直接到达想要到的地方。

第一遍我们就用一步步来的方法走一遍吧。 (代码一部分借鉴了哈佛的CS109)

首先我们先定义下 有3扇门,其中奖品在某一扇门中。 

 

首先安装下 numpy库

1.这个可以用 random.randint来实现。 randint(start, end, size) 随机选择的3个门中间的一个

1 def simulate_prizedoor(nsim):
2     return np.random.randint(0, 3, (nsim))

2.然后我们可以定义下,一开始选择的一扇门。 这里可以用固定选择法,也可以用随机法,数据大的情况下差别不大。这里我们直接用了固定选择第一扇门(0)

1 def simulate_guess(nsim):
2     return np.zeros(nsim, dtype=np.int)

3.然后我们 模拟主持人,开一扇没有奖品的门。

1 def goat_door(prizedoors, guesses):
2     result = np.random.randint(0, 3

你可能感兴趣的:(游戏,python)