“三門問題”的代碼解法
下面是代碼↓ import random,time change_result = [] not_change_result = [] for i in range(1000): ??a = [[1,0,0],[0,1,0],[0,0,1]]#門的所有可能 ??b = random.choice(a)#門的列表 ??c = [1,2,3]#門的編號 ??d = random.choice(c)#選擇的門 ??print('選擇了' + str(d) + '號門') ??c.remove(d) ??e = [] ??for j in c: ????if b[j-1] == 0: ??????e.append(j) ??w = random.choice(e) ??c.remove(w) ??f = c[0] ??print(str(w) + '號門是錯誤的,要換一個門嗎') ??g = random.choice([0,1])#換不換 ??if g == 0: ????print('不換') ????if b[d-1] == 1: ??????print('你選對了') ????else: ??????print('你選錯了') ????not_change_result.append(b[d-1]) ??elif g == 1: ????print('換') ????if b[f-1] == 1: ??????print('你選對了') ????else: ??????print('你選錯了') ????change_result.append(b[f-1]) ????time.sleep(0.2) n = 0 m = 0 for p in change_result: ??if p == 1: ????n += 100/len(change_result) for k in not_change_result: ??if k == 1: ????m += 100/len(not_change_result) print('選擇換的正確率為'+str(n)) print('選擇不換的正確率為'+str(m)) 最后算出來n為67%左右,m為32.8%~33%之間 拍屏↓