Python的第二次作业
羊车门问题
1、我认为 会 增加选中汽车的机会,原因如下:
不换的情况:对于参赛者而言无论选哪一扇门都有1/3的几率能获得车子.
换的情况 :对于参赛者而言,有两种情况「1.参赛者第一次就选择到了正确的有车的门,那么主持人随便选一扇门都是羊,参赛者改变选择后一定不中」
「2.参赛者第一次没能选到车的门(选到的是羊门),那么主持人会指出一扇羊门,那么剩下的最后一扇门必定是车门,那么换选择则必定选中」
综上所述-换选择的几率是2/3,不换的几率是1/3.所以换选择 会 增加选中汽车的可能性.
2.程序代码如下:
(一)模拟参赛者的选择:
from random import choice tim=eval(input("请输入样本的数量:")) cou1=0 #不换的可能数 cou2=0 #换的可能数 def posiibilo(rech): doors=[1,2,3] car=choice(doors) #奖车子所在的门 my=choice(doors) #我选择的门 mirrordoor=doors[:] mirrordoor.remove(my) if car != my: #当选择不为车时,主持人选择一扇羊门 mirrordoor.remove(car) temp=choice(mirrordoor) #temp是主持人的选择 if rech == True: doors.remove(my) doors.remove(temp) return doors[0]==car else: return my==car for i in range(1,tim): if posiibilo(rech=True) == True: cou1+=1 for u in range(1,tim): if posiibilo(rech=False) == True: cou2+=1 resultchange=cou1/tim resultunchange=cou2/tim print("更改选择的情况的可能性为{:.2f},不更改选择的可能性为{:.2f}".format(resultchange,resultunchange))
(二)分析后的:
from random import randint n = eval(input("请输入样本的数量:")) cou1 = 0 #不换的可能数 cou2 = 0 #换的可能数 for i in range(n): car = randint(0, 2) #车子所在门 my = randint(0, 2) #自己选择的门 if my == car: #第一次选中的情况 cou1 += 1 else: cou2 += 1 result1 = cou1 / n result2 = cou2 / n print("更改选择的情况的可能性为{:.2f},不更改选择的可能性为{:.2f}".format(result2,result1))
3.程序的截图: