先给出结论:重新选择中小车的概率是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。
网友评论