PTT推薦

Re: [問卦] 三扇門的問題 33.3% or 50%

看板Gossiping標題Re: [問卦] 三扇門的問題 33.3% or 50%作者
panex0845
(胖克思)
時間推噓 5 推:5 噓:0 →:4

我原本也是相信機率會從33%變成66%所以要換的

可是我發現,

如果把門的數量提高到100扇

程式跑出來的結果兩者趨近於1

那不就是50/50嗎?八卦?


※ 引述《supernick (尼克黃)》之銘言:
: 安安,理論鄉民都回很多了,其實我們自己玩個十萬次就好啦
: 先決定有幾扇門,然後先隨機選個答案
: 法一:再隨便選扇門,直接對答案
: 法二:主持人從非答題者選的門以及正確答案中,再隨機選出一扇門打開
: 接著答題者從非自己第一次選的門,以及非剛才主持人選的門中,
: 再選擇一扇門做答案
: 我寫程式跑了十萬次,法一約是33.3%,法二約是66.6%啦
: 對python不熟,code在下面,請廣大鄉民幫我debug感恩
: 不會寫程式或沒有環境朋友,也可以把code貼到下面這連結玩玩看
: https://www.programiz.com/python-programming/online-compiler/
: ----
: import random
: # construct n doors in game
: DOORS = 3
: PLAY_TIMES = 100000
: win_times_1 = 0
: win_times_2 = 0
: for i in range(PLAY_TIMES):
: door = list(range(DOORS))
: # the game host chooses answer
: answer = random.choice(door)
: # the player picks one door randomly as his/her answer
: pick = random.randint(0, DOORS-1)
: # case 1: player does not change decision
: if pick == answer:
: win_times_1 += 1
: # case 2: player changes decision after host revealed one of the answer: # pick remove door and then remove from choices. cannot be answer or pick: remove_choices = list(range(DOORS))
: remove_choices.remove(answer)
: if answer != pick:
: remove_choices.remove(pick)
: remove_door = random.choice(remove_choices)
: # remove the door from list
: door.remove(remove_door)
: # remove original answer
: door.remove(pick)
: # player picks a door again
: pick = random.choice(door)
: if pick == answer:
: win_times_2 += 1
: print("No Change Winning Percentage: ", win_times_1/PLAY_TIMES * 100)
: print("Change Door Winning Percentage:", win_times_2/PLAY_TIMES * 100)

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.215.74 (臺灣)
PTT 網址

rex9999 08/16 03:27無論設計多少門 最終永遠二擇一

xiemh420 08/16 03:33代表程式寫錯了

babyalley 08/16 03:33我記得最終都是要2擇1 所以如果你設計

babyalley 08/16 03:33100道門 你會先選1門 然後開剩下的門

babyalley 08/16 03:33中的98道門 之後再問你要不要換

kurtsgm 08/16 03:34啊就代表他寫錯了啊 XD

xiemh420 08/16 03:38100道門 換門的勝率是99%

Armour13 08/16 03:41這串文幹嘛討論這麼久

Js1233 08/16 13:01你門越多,換或不換都沒有機率了