用Python验证蒙蒂门概率问题

2020-08-20  本文已影响0人  何彪1973

先给出结论:重新选择中小车的概率是2/3
以下是代码:

# encoding: UTF-8
import random
from random import choice, randint

count = 1000000
count_car = 0
#以下列表中的值,1代表贵重的小汽车,2、3代表其它不值钱的东西
for i in range(count):
    list = [1,2,3]
    first_select = random.choice(list)     #玩家第一次随机选择
    if first_select == 1:
        open_door = random.choice([2,3])   #如果玩家选择了1,主持人会随机打开2或者3
    elif first_select == 2:
        open_door = 3                      #如果玩家选择了2或者3,主持人会打开不是1的另外一个门
    else: 
        open_door = 2

    list.remove(first_select)              #放弃第一次选择的结果
    list.remove(open_door)                 #去掉已打开的门,剩下那个未被主持人打开的门
    second_select = list[0]             
    if second_select == 1:                 #统计二次选择中,成功获得小汽车的次数
        count_car = count_car + 1
print(count_car)
print(round(count_car/count,4))

其实,可以这样思考:第一次选择时的A,中小车的概率是1/3,剩下B和C中有小车的概率是2/3,主持人帮我把B或者C中非小车的给排除了,那剩下的C或者B是小车的概率仍然是2/3。

上一篇下一篇

猜你喜欢

热点阅读