import random count1 = 0 count2 = 0 for i in range(10000): doors = list(range(3)) #生成3扇门,可以更换成任意扇门 gn = random.choice(doors) #生成奖品所在的门 p1n = random.choice(doors) #观众第一次选择的门 #去掉奖品和观众第一次选择的门,其他的门就是主持人可以打开的门 doors_z = [] for j in doors: if j != gn and j != p1n: doors_z.append(j) zn = random.choice(doors_z) #主持人打开的门 #去掉观众第一次选择的门,再去掉主持人打开的门,剩下就是观众第二次可以选择的门 doors.remove(p1n) doors.remove(zn) p2n = random.choice(doors) #观众第二次选择的门 if p1n == gn: count1 += 1 if p2n == gn: count2 += 1 print('坚持不换门的策略,中奖的机率为:{:.2%}'.format(count1/10000)) print('坚持换门的策略,中奖的机率为:{:.2%}'.format(count2/10000))