Python的第二次作业

时间:2024-11-24 17:04:50

羊车门问题

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

Python的第二次作业