なべ神 - NABEGOD

キモオジの徒然なる雑記。ゲーム・アニメが趣味

ゲーム 雑学

モンティ・ホール問題 実装してリファクタリングしてみるとあまりにスッキリしすぎた[PHP]

投稿日:2017年2月26日 更新日:

スポンサーリンク

パラドックス系の話題で挙がる
モンティ・ホール問題
結果を聞いても、納得できない人が多い結構有名な問題です。

「プレーヤーの前に閉まった3つのドアがあって、1つのドアの後ろには景品の新車が、2つのドアの後ろには、はずれを意味するヤギがいる。プレーヤーは新車のドアを当てると新車がもらえる。プレーヤーが1つのドアを選択した後、司会のモンティが残りのドアのうちヤギがいるドアを開けてヤギを見せる。
ここでプレーヤーは、最初に選んだドアを、残っている開けられていないドアに変更してもよいと言われる。プレーヤーはドアを変更すべきだろうか?」
1990年9月9日発行、ニュース雑誌 Parade にて、マリリン・ボス・サヴァントが連載するコラム「マリリンにおまかせ」において上記の読者投稿による質問に「正解は『ドアを変更する』である。なぜなら、ドアを変更した場合には景品を当てる確率が2倍になるからだ」と回答した。すると直後から、読者からの「彼女の解答は間違っている」との約1万通の投書が殺到し、本問題は大議論に発展した。

引用先
モンティ・ホール問題(wikipedia)

選びなおすと、確率2倍になる?嘘でしょ?
ドアを変えても変えなくても、確率同じでしょ?

というのが納得できない理由です。

確かに直感的には、1/2に感じます。
当然1/2だろ。何を考える必要がある。とさえ思います。

こういう時は実際に動かして検証すると良いと思います。

実装方針

  • PHPで実装してみる(趣味)
  • 最初のドアが当たりの回数と2つ目のドア(選びなおすドア)が当たりの回数を数える
  • 考えをまとめる目的なので、動作確認してないです。ごめんなさい。
  • 念のため100万回試行できるようにしておこうか・・

そして実装(PHP)

まず、問題の意味をできるだけ、表現するように実装してみました。
forの中身がキモですね。

リファクタリングする

問題を整理したいので、
リファクタリングしていきます。

まず、
3つのドアの関係性を結果から場合わけでまとめます。
すいません、事前準備みたいな感じになってしまいました。

結果回数を格納するカウンターを、
判別した時点でカウントされるように、移動してしまう。

この部分の内容を

こちらにまとめる。
上の内容は同時に削除する。

$open_doorと$second_doorは、以降どこにも使用されていない。
結果をカウントできるため、消去可能。

これは、司会者が開けるドアが何なのか、
また、2つ目の選択肢のドアが何なのかは、
結果から見ると、全く関係ないという事ですね。

さらに、else if ($rest_door_1)と $rest_door_2 のブロックの中身が
同じなので・・

orでまとめる。

ここまで来ると、

最初に選んだドアが当たりかどうかだけが、この問題のキモである

という事が見た目で分かります。

最初のドアが当たりなら、$rest_door_1と$rest_door_2は外れ確定。
最初のドアが外れなら、
$rest_door_1か$rest_door_2に当たりが存在する為、
このように省略できます。

さらに三項演算子で、1行で表すと(ダメでしょうか)

やりすぎですけど、スッキリした気がします。
公式ぽいですねえ。

わかった事

最初に選択した、1つ目のドアが当たりかどうかだけで
結果が決まってしまう事が分かります。
  • 最初のドアが当たりなら、最初のドアが当たり
  • 最初のドアがハズレなら、2つ目の選択肢のドアが当たり

という事ですので、

最初のドアが当たりの確率は、1/3
最初のドアがハズレの確率は、2/3

最初のドアがハズレであれば、2つ目の選択肢のドアが当たりなので

2つ目の選択肢のドアの当たりの確率は、2/3

最初のドアが当たりの確率は 1/3
2つ目の選択肢のドアの当たりの確率は 2/3

確かに2つ目の選択肢のドアは、
最初のドアが当たる確率の2倍になりました。

ちなみに、リファクタリング後のコード

モンティ・ホールの問題をリファクタリングしていくと、こうなってしまいました。
いきなりこんなコード見せられても、何なのか、全く意味わかんないですね。

あとがき

パラドックスは、ソーシャルゲームに利用されて、
そして禁止されてきた歴史があります。

コンプガチャが最たるものですね。
コンプガチャはちょっと勘の良い人であれば、
これやばい仕様のやつだ、と。気がつくと思うのですが、
モンティ・ホール問題くらい気づきづらいパラドックスを組み込んだガチャが存在するのなら・・
と、すでに存在しているのでしょうか。

ドキドキします・・

スポンサーリンク

スポンサーリンク

関連記事

【にゃんこレンジャー】ネコムートLv800達成で15000%スキルの能力に驚く

Contents1 ネコムートの最終スキル凄そう2 とにかく、稼ぐために進む3 方針変更、とにかく進めるだけ進む4 232面でLv800達成4.1 Before4.2 After4.3 そしてダメージ …

【考察】フレーミング効果とガチャ。その効果範囲とは。

no image

こんにちはー。 まとまらない話です。 フレーミング効果とその効果範囲について考えてみました。 フレーミング効果 こちらのページによると、 つまりフレーミング効果とは、モノゴトの本質だけでなく、スポット …

【にゃんこレンジャー】転生のタイミング(無課金で妥協あり)

にゃんこレンジャーの転生について。 現仕様ですと、何も考えないで転生していると、そのうち詰むのでは無いかと思います。 転生を繰り返す事に転生の最低条件が厳しくなっていくからです。 Contents1 …

【ロマサガRS】強いスタイルは唯一性があるの意味

no image

こんにちはー。 ロマサガRSやってます。 情報サイトみて、このスタイルは強い!みたいなのみて、最初さっぱりでしたが、少しづつ理解できるようにきましたので、そこらのポイントをメモがわりに書いていこうと思 …

【ソーシャルゲーム】課金しないと見えないものがある。そのセリフの真意を考察

『課金しないと見えないものがある』 ソーシャルゲーム界隈では、 自然と会話に出てくるセリフのようです。 このセリフはゲームするユーザーの方に向けてのセリフではなく、 ゲームの作り手が、同じゲームの作り …