プログラマならモンティ・ホール問題もプログラミングで解いちゃうよね?

二倍になるぞ、気をつけろ!

この記事を三行にまとめると

Pythonでモンティ・ホール問題
基本バージョン
シンプルバージョン
この記事は以下の動画の中に出てきたサンプルコードを載せたものです。コピペなどが必要なときに使ってください。

動画内ではHTMLやCSSも書いていますが、ここではPython部分だけを紹介します。





基本バージョン

モンティ・ホール問題の一連の流れをそのままコードにしたバージョンです。プレイヤーが扉を選び、出題者が残りの扉のうちはずれの方を開け、プレイヤーは残った方の扉に変更するという。

win = 0
count = 10000

for n in range(count):
  door = ['red', 'green', 'blue']
  correct = random.choice(door)
  select = random.choice(door)

  for d in door:
    if d != correct and d != select:
      door.remove(d)
      break

  if select == door[0]:
    select = door[1]
  elif select == door[1]:
    select = door[0]

  if select != correct:
    win += 1

lose = count - win



シンプルバージョン

簡略化バージョン。最初に扉を選んだ時点で当たりかはずれか判定できるので、それだけをコード化しています。

door = ['red', 'green', 'blue']
win = 0
count = 10000

for n in range(count):
  correct = random.choice(door)
  select = random.choice(door)

  if select != correct:
    win += 1

lose = count - win
 もしかしたら何か関連しているかも? 
 みんなからのコメント 
まだコメントはいただけてないみたい……