Python in my GitHub

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.程序的截图:

羊车门问题截图

posted @ 2017-03-28 13:14  xlxw  阅读(372)  评论(0编辑  收藏  举报