‘’三门问题‘’详解以及python验证

问题简介

三扇门A B C,两扇为空,一扇背后有法拉利!参赛选手选择其一,此时主持人会打开其中一扇空门,问是否要更换选择。
参赛选手应该换吗?

常见想法

甲:换啥啊,就两个了,对半开机会都是0.5啊!
乙:有点不对劲,但也不晓得哪里有问题
丙:管他啥概率呢,我相信第一直觉

正确思路

这种55开的想法没有考虑到独立事件条件概率
**题目解刨:**主持人打开的门并非是随机的,而是必须为空门(如果直接把法拉利的门打开给你看,还用选吗???这是送跑车的节奏啊)

一、 换获胜的概率
选择更换,并且还想拿到法拉利,这说明什么呢?

  1. 第一次的选择必须是空门(如果开始就选到法拉利,结果给换了,那就www,跑车梦破碎)
  2. 主持人打开另外一扇空门
  3. 更换后的门,必然对应法拉利!!!
    在这里插入图片描述
    所以这个概率转移到了第一次的选择,只要是空门就好啦
    P = 2/3

二、 不换获胜的概率
既然都不换了,把眼睛闭上不开裁判吧…我什么都不知道 我什么都不知道 妖魔鬼怪快离开
在排除一切怪力无语后,概率没有变化
P=1/3

python验证

# Created with Python AI

from random import choice

def stay():
  Choose=choose
  return Choose
  
def switch():
  doors.remove(choose)
  doors.remove('empty')#只会删除一个empty
  Choose = doors
  return Choose

if __name__ == '__main__':
  cout_stay = 0 #初始化
  win_stay = 0
  cout_switch = 0
  win_switch = 0
  
  decision=['stay','change']
  for i in range(100000): #设置模拟次数
    doors=['Ferrari','empty','empty']#设置门,无ABC顺序
    choose=choice(doors)
    if choice(decision) == 'stay':
      cout_stay += 1
      if stay() == 'goat':
        win_stay +=1
    else:
      cout_switch +=1
      if switch() == ['Ferrari']:
        win_switch +=1
        
print(f'''更换后选到法拉利的概率为{
     win_switch/cout_switch} 
    ''')

‘’三门问题‘’详解以及python验证_第1张图片
大家都是大人啦!!我们得理性,该换换,说不定下一个中奖的就是你噢

你可能感兴趣的:(笔记)