8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

勝率を上げる鍵は?モンティ・ホール問題が示す選択の秘訣

Posted at

あなたならどうする?確率に挑む「モンティ・ホール問題」

モンティ・ホール問題は、確率の直感を試す有名なパズルです。この問題はアメリカのゲームショー "Let's Make a Deal" に由来しています。本記事では、問題の内容と解き方を簡単に説明します。


ゲームのルールを理解しよう

あなたは 3つのドア の中から1つを選びます。そのうち 1つのドアの後ろ には が隠されており、残り 2つのドア には ヤギ がいます。ルールは次の通りです:

  1. あなたは3つのドアから 1つ を選びます。
  2. モンティ・ホール(司会者)は、選ばなかった2つのドアの中から 必ずヤギがいるドア を1つ開けます。
  3. モンティはこう尋ねます:
    • 「最初に選んだドアをそのままにしますか?それとも別のドアに切り替えますか?」

例えば:

  • あなたが最初に ドア1 を選びます。
  • モンティが ドア2(ヤギ)を開けます。
  • あなたは ドア1 をそのままにするか、残りの ドア3 に切り替えるか選べます。

このとき「ドアを切り替えた方が得なのか?」という疑問が生まれます。

選択と結果

あなたは 3つのドア の中から 1つ を選びます。もし選んだドアの後ろに があれば 車を獲得 できますが、 ヤギ ならばヤギを持ち帰ることになります。

ここで問題になるのは次の疑問です:

「どのようにすれば最も高い確率で車を選べるのか?」

選んだドアをそのままにするのか、それとも切り替えるのか?どちらが有利なのでしょうか?


答え:切り替えた方が得

結論としては、「ドアを切り替える」方が車を獲得できる確率が高いです。

  • そのままの場合:車を獲得する確率は 1/3
  • 切り替えた場合:車を獲得する確率は 2/3

理由を簡単に説明

初めの確率

  • 最初に車を選ぶ確率は 1/3
  • 最初にヤギを選ぶ確率は 2/3

切り替える場合

  • 最初に車を選んだ場合(確率 1/3):切り替えるとヤギになります。
  • 最初にヤギを選んだ場合(確率 2/3):モンティがもう一方のヤギのドアを開けるので、切り替えると車になります。

つまり、切り替え戦略では 2/3 の確率で車を獲得できます。


別の視点:すべてのケースを考える

問題をわかりやすくするために、すべてのケースを考えてみましょう。ドアに C(車)G(ヤギ) が隠れているとします。

  1. ケース1: ドア1が車 (C, G, G)

    • あなたがドア1を選ぶ。
    • モンティはドア2または3を開ける(どちらもヤギ)。
    • 切り替えるとヤギ、切り替えないと車
  2. ケース2: ドア2が車 (G, C, G)

    • あなたがドア1を選ぶ。
    • モンティはドア3を開ける(ヤギ)。
    • 切り替えると車、切り替えないとヤギ
  3. ケース3: ドア3が車 (G, G, C)

    • あなたがドア1を選ぶ。
    • モンティはドア2を開ける(ヤギ)。
    • 切り替えると車、切り替えないとヤギ

上の3つのケースを見てみると、

  • 切り替えない場合:車を選ぶ確率は 1/3
  • 切り替える場合:車を選ぶ確率は 2/3

実際に試してみよう

以下のPythonコードで、モンティ・ホール問題をシミュレーションできます。

シンプルなPythonコード

import random

def monty_hall_simulation(trials=10000):
    switch_wins = 0
    stay_wins = 0

    for _ in range(trials):
        doors = ['goat', 'goat', 'car']
        random.shuffle(doors)

        player_choice = random.randint(0, 2)

        for i in range(3):
            if i != player_choice and doors[i] == 'goat':
                monty_choice = i
                break

        switch_choice = [i for i in range(3) if i != player_choice and i != monty_choice][0]

        if doors[switch_choice] == 'car':
            switch_wins += 1
        if doors[player_choice] == 'car':
            stay_wins += 1

    print(f"切り替えた場合の勝率: {switch_wins / trials * 100:.2f}%")
    print(f"そのままの場合の勝率: {stay_wins / trials * 100:.2f}%")

monty_hall_simulation()

このコードを実行すると、切り替えた場合の勝率が約 66.7%、そのままの場合の勝率が約 33.3% になることがわかります。


最後に

モンティ・ホール問題は、確率の面白さを教えてくれる問題です。最初は直感と違う結果に驚くかもしれませんが、シミュレーションや数学的な分析を通じて納得できるようになります。

ぜひこの問題を楽しんでみてください!

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?