はじめに ー 週末研究ノートとは?
個人的に研究的な活動をやるにあたり、オープンにしてみたら面白いかもと思い、自分が興味を持っている ざっくりテーマについて、これから、ゆるい週末研究を公開していこうと思います。(有識者の方のアドバイスも、ちょっとというかかなり期待してます!笑)
どこかの権威的な学会やジャーナルなどで発表する予定はないため、万が一、私の記事を利用する際には自己責任でお願いします。そんな人はいないと思いますが、念のため。
今回のサマリ (TL; DR)
今回は、閑話休題?!
ひさしぶりに「モンティ・ホール問題」に出会ったので、選択肢を変えた場合の確率をシミュレーションしてみました。
環境
-
Google Colaboratory
- コードは、こちら
今回の週末研究ノート
モンティ・ホール問題の選択肢を変えた場合について、シミュレーションしたよ♪
モンティ・ホール問題とは?
「こちら」(Wikipedia)を参照ください
選択肢を変えた時のシミュレーション
%%time
n = 100000
n_corrects = 0
for _ in range(n):
# 正解の車のドアをランダムに決める
door_car = rnd.choice(doors)
# ハズレのヤギのドアを記録しておく
door_goats = [dr for dr in doors if dr != door_car]
# プレイヤーがドアをランダムに1つ選ぶ
door_pickedup = rnd.choice(doors)
# 司会のモンティがハズレのドアをランダムにオープンにする
door_opened = rnd.choice([dr for dr in doors if dr not in [door_car, door_pickedup]])
# プレイヤーがドアをランダムに変える
door_changed = rnd.choice([dr for dr in doors if dr not in [door_opened, door_pickedup]])
# 変更したドアが正解の車のドアだったら、正解数をインクリメントする
if door_changed == door_car:
n_corrects += 1
# 正解率を表示
print("正解確率:", n_corrects/n)
まとめ
- 選択肢を変えると、ちゃんと、正解率は $\frac{2}{3}$ になるよ!
- 思ったより、簡単にシミュレーションを実装できた♪