当たりが等確率で置かれた3つのドアから1つを選ぶと、中身を知っている司会者が、選ばれていないハズレのドアを必ず1つ開けて交換を提案する。ここで選び直すと当たる確率は1/3から2/3に上がります。残ったドアは2つなのだから五分五分だ、という直感に反する問題です。名称はゲーム番組の司会者Monty Hallに由来し、1990年には数学者を巻き込む論争になりました。ただし2/3という答えは無条件では成り立ちません。司会者の振る舞いや当たりの置き方が変われば、正解は1/2にも1にも0にもなります。この記事では場合分けの表とベイズの定理で2/3を導いたうえで、100万回のシミュレーションを実際に走らせ、前提が崩れたときに答えがどう動くかまで確かめます。
まとめ:結論と、答えを変えてしまう前提
- 標準ルールでは、ドアを変えない場合の勝率は1/3、変える場合は2/3。100万回の試行で0.3337と0.6663を実測しました。
- 変えて損をするのは、最初に当たりを引いていたときだけです。それが起きるのは3回に1回しかありません。
- 2/3を支えている前提は4つあります。当たりが3つのドアに等確率で置かれている、司会者は中身を知っている、必ずハズレのドアを開ける、必ず交換を提案する、の4つです。
- 司会者が中身を知らずに開けて、たまたまハズレだった場合(モンティ・フォール問題)は、変えても変えなくても1/2です。
- 司会者に開けるドアの癖があると、開いたドアの番号で条件づけた交換の勝率は1/2から1の間で動きます。ただし1/2を下回ることはなく、番号を区別しない全試行での勝率は2/3のままです。
- 交換を提案するかどうかを司会者が選べる場合や、当たりの置き方に偏りがある場合は、変えないほうが得になることがあります。
- 初出は1990年のvos Savantではなく、1975年のSteve Selvinによる学術誌への投書です。
出題のルールと「変えれば2/3」という答え
1991年7月21日付のニューヨーク・タイムズ紙は、論争の発端となったParade誌の出題文をそのまま引用しています。「あなたはゲーム番組に出ていて、3つのドアから1つを選べる。1つのドアの後ろには車が、残りの後ろにはヤギがいる。あなたがドア1を選ぶ。ドアの後ろに何があるかを知っている司会者が、ヤギのいるドア3を開ける。そして『ドア2に変えますか』と尋ねる。交換するのはあなたにとって有利か」(John Tierney「Behind Monty Hall’s Doors: Puzzle, Debate and Answer?」The New York Times, 1991年7月21日, Section 1 Page 1。リンク先はMITのサイトに保存された記事転載ページのPDF)。
答えは「有利」です。理由は、最初に選んだドアの中身で場合分けすれば1行で片がつきます。
| 最初に選んだドアの中身 | 起こる確率 | 変えない場合 | 変える場合 |
|---|---|---|---|
| 車(3つのうち1つ) | 1/3 | 当たり | ハズレ |
| ヤギ(3つのうち2つ) | 2/3 | ハズレ | 当たり |
最初にヤギを引いていた場合、残る2つのドアは「車」と「もう1匹のヤギ」です。司会者はヤギのドアしか開けられないので、必ずもう1匹のヤギを開けます。閉じたまま残るのは車のドアだけで、交換すれば確実に当たります。つまり交換戦略が負けるのは、最初に当たりを引いていた1/3のときに限られます。
直感が「1/2」と答えてしまう理由
ドアの本数ではなく司会者の行動が運ぶ情報
誤りの中身は、ニューヨーク・タイムズが引用した数学教授の抗議文にはっきり出ています。ジョージ・メイソン大学のRobert Sachs教授は「You blew it!(間違えたね)」と書き送り、「1つのドアがハズレだと示されれば、その情報は残る2つの選択肢の確率をどちらも1/2に変える。どちらか一方がより起こりやすいと考える理由はない」と主張しました。この推論は、司会者の行動が持つ情報を見落としています。司会者は中身を知っていて必ずハズレを開け、両方ハズレのときはどちらを開けるかに癖がない。この条件のもとでは、ドアが開いたことで最初のドアの確率は1/3から動かず、変わるのは残ったもう1枚のほうだけです。
裏を返すと、「最初のドアの確率は変わらない」は常に使える理屈ではありません。同じ「ドアが1つ開いた」という見た目でも、誰がどんなルールで開けたかによって確率は変わります。この記事の後半で、司会者の知識や癖、当たりの置き方を変えると最初のドアの確率も実際に動くことを実測します。
「扉を100枚にすればわかる」説明が成立する条件
納得を助ける定番として、ドアを100枚に増やす説明が使われます。100枚から1枚選び、司会者が残り99枚のうち98枚を開けてすべてハズレだと示す。残った1枚に乗り換えるべきだ、という説明です。数としては正しく、交換すれば99/100で当たります。
ただしこの説明が効くのは「司会者が残りの99枚から98枚を、中身を知ったうえで開ける」という条件が明示されている場合だけです。トロント大学のJeffrey S. Rosenthal教授は論文「Monty Hall, Monty Fall, Monty Crawl」(Math Horizons, 2008年9月, pp.5-7)で、「最初の選択は1/3で当たり、司会者がハズレを開けるのは分かっていたのだからそれは変わらない」という定番の説明を「Shaky Solution(ぐらついた解法)」と呼びました。結論は合っているのに、問題を少し変えると同じ論法が破綻するからです。100枚の説明を持ち出す前に、上の2行の表で「変えて損をするのは最初に当たっていたときだけ」を確認するほうが、条件の見落としが起きにくくなります。
反復実験での交換率:初回12%から55%への変化
直感の強さは実験でも測られています。Donald GranbergとThad A. Brownは、被験者にこのゲームを繰り返させた結果を報告しました。抄録の記述は「In the first encounter, only 12% switch. Across trials, switching increases to 55%.」で、初回に交換を選んだのは12%、試行を重ねても55%までしか上がりません(「The Monty Hall Dilemma」Personality and Social Psychology Bulletin, 21巻7号, 1995年7月, pp.711-723)。
ベイズの定理による交換の勝率2/3の導出
場合分けの表は「どのドアが開いたか」を区別していません。区別したうえで計算するのがベイズの定理の役割です。プレイヤーがドア1を選び、司会者がドア3を開けた場面で考えます。
事前確率はどのドアも1/3。尤度は「車がそこにあるとき、司会者がドア3を開ける確率」です。車がドア1にあるなら司会者はドア2とドア3のどちらでも開けられ、ここでは両者を等確率で選ぶと仮定するので1/2、車がドア2にあるならドア3しか開けられないので1、車がドア3にあるなら開けられないので0になります。
| 車の位置 | 事前確率 | ドア3を開ける確率(尤度) | 同時確率 | 事後確率 |
|---|---|---|---|---|
| ドア1(選んだドア) | 1/3 | 1/2 | 1/6 | 1/3 |
| ドア2(残ったドア) | 1/3 | 1 | 1/3 | 2/3 |
| ドア3(開いたドア) | 1/3 | 0 | 0 | 0 |
同時確率の合計は1/6 + 1/3 = 1/2。これで各行を割ると事後確率が出ます。ドア2の2/3が、交換したときの勝率です。ここで効いているのは尤度の差で、ドア2の尤度1がドア1の尤度1/2のちょうど2倍あることが、そのまま勝率の2倍に対応しています。この表の「事前確率」と「尤度」の列が、後半で前提を変えるときに書き換わる場所です。公式の意味と一般的な使い方はベイズの定理とは?公式の意味・具体例からナイーブベイズ実装までで、尤度という量そのものの扱いは尤度とは?読み方(ゆうど)・確率との違いから尤度関数・対数尤度・最尤推定・尤度比までわかりやすく解説で整理しています。
Pythonによる100万回の試行:標準ルールとモンティ・フォール問題
乱数によるシミュレーションでは、試行結果が理論値に近づく様子を確認できます。次のコードは標準ルールと、司会者が中身を知らずに偶然ドアを開けた場合の2つを、それぞれ100万回試行します。
import random
def trial(rng, host_knows):
car = rng.randrange(3)
pick = rng.randrange(3)
others = [d for d in range(3) if d != pick]
if host_knows:
opened = rng.choice([d for d in others if d != car])
else:
opened = rng.choice(others)
if opened == car:
return None
switched = [d for d in range(3) if d not in (pick, opened)][0]
return pick == car, switched == car
def run(n, host_knows, seed=1):
rng = random.Random(seed)
stay = switch = valid = 0
for _ in range(n):
r = trial(rng, host_knows)
if r is None:
continue
valid += 1
stay += r[0]
switch += r[1]
return stay / valid, switch / valid, valid
for knows in (True, False):
s, w, v = run(1000000, knows)
label = "知っている" if knows else "知らない "
print(f"司会者が中身を{label}: 変えない={s:.4f} 変える={w:.4f} 有効試行={v}")
Python 3.15.0で実行した出力です(3.9.6でも同じ値になります)。
司会者が中身を知っている: 変えない=0.3337 変える=0.6663 有効試行=1000000
司会者が中身を知らない : 変えない=0.5008 変える=0.4992 有効試行=666363
上段が標準ルールで、実測値は理論値の1/3と2/3に近い値になっています。注目すべきは下段です。司会者が中身を知らずにドアを開け、たまたまヤギだった回だけを数えると、変えない場合は0.5008、変える場合は0.4992となり、どちらも理論値の1/2に近い結果になりました。有効試行が約66万回なのは、3回に1回は司会者が車のドアを開けてゲームが成立しないためです。Rosenthalはこの変種を、司会者がバナナの皮で滑って偶然ドアを押し開けてしまう状況になぞらえて「Monty Fall Problem(モンティ・フォール問題)」と呼び、この場合は交換しても勝率は1/2だと述べています。
見えている状況は標準ルールとまったく同じ、つまり「自分のドアと、開いたヤギのドアと、残った1枚」です。それでも答えが違うのは、司会者の行動ルールが違うからです。乱数を使った推定手法の考え方はモンテカルロ法とは?乱数で解く仕組みと円周率・リスク評価・強化学習での使い方【2026年版】にまとめています。
司会者の偏りqとドア3開放後の交換の勝率
もう一段だけ前提を緩めます。司会者は必ずハズレを開け必ず交換を提案するが、両方ハズレで選択の余地があるとき、特定のドアを開ける癖があるとします。J. P. Morgan、N. R. Chaganty、R. C. Dahiya、M. J. Doviakの4氏は1991年、vos Savantが「プレイヤーの選んだドアと司会者が開けたドア」で条件づけた確率を計算していないと批判し(後述のGillの解説による)、この癖をパラメータ化した解を示しました(「Let’s Make a Deal: The Player’s Dilemma」The American Statistician, 45巻4号, 1991年11月, pp.284-287)。
プレイヤーがドア1を選び、車もドア1にあるとき、司会者がドア3を開ける確率をqとします。ライデン大学のRichard D. Gill教授は解説「The Monty Hall Problem」でこの結果を「the posterior odds become q : 1. This can be anything between 0 : 1 and 1 : 1, but whatever it is, it is not unfavourable to switching」と要約しています。事後オッズがq対1ということは、ドア3が開いた場面で交換して勝つ確率は1/(1+q)です。Rosenthalも同じ式を「Monty Small Problem」として導き、q=0の場合、つまり選択の余地があれば必ず番号の小さいドアを開ける司会者を「Monty Crawl」と呼んでいます。
| 司会者がドア3を開ける癖 q | ドア3が開いた場合の交換の勝率 | ドア2が開いた場合の交換の勝率 |
|---|---|---|
| 0(ドア2ばかり開ける=Monty Crawl) | 1 | 1/2 |
| 1/2(癖なし=標準ルール) | 2/3 | 2/3 |
| 1(ドア3ばかり開ける) | 1/2 | 1 |
この式も乱数で確かめられます。
import random
def biased(n, q, seed=2):
rng = random.Random(seed)
tally = {2: [0, 0], 3: [0, 0]}
for _ in range(n):
car = rng.choice([1, 2, 3])
if car == 1:
opened = 3 if rng.random() < q else 2
else:
opened = 5 - car
switch_to = 5 - opened
tally[opened][1] += 1
if switch_to == car:
tally[opened][0] += 1
return tally
for q in (0.5, 1.0):
for opened, (win, cnt) in sorted(biased(1000000, q).items()):
p = q if opened == 3 else 1 - q
print(f"q={q} 開いたのがドア{opened}: 実測={win / cnt:.4f} "
f"理論={1 / (1 + p):.4f} 該当回数={cnt}")
q=0.5 開いたのがドア2: 実測=0.6665 理論=0.6667 該当回数=500134
q=0.5 開いたのがドア3: 実測=0.6671 理論=0.6667 該当回数=499866
q=1.0 開いたのがドア2: 実測=1.0000 理論=1.0000 該当回数=333350
q=1.0 開いたのがドア3: 実測=0.5002 理論=0.5000 該当回数=666650
q=1.0の2行が要点です。司会者がドア3ばかり開ける癖を持つと、ドア3が開いた場面での交換の勝率は0.5002まで落ち、代わりにドア2が開いた場面では1.0000になります。各ドアが開く確率で重みづけして平均すると、全試行での交換の勝率は2/3に戻ります。癖qがどんな値でも交換の勝率は1/2を下回らないので、この前提のもとでは交換して損をすることはありません。開いたドアの番号で条件づけても2/3になるのは、qが1/2のときだけです。
前提別に見る交換の勝率:悪魔モンティから当たりやすさの差まで
残る2つの前提「必ず交換を提案する」「当たりは等確率に置かれる」を外した場合も加えて並べます。いずれも、ヤギのドアが1つ開いて交換を提案された時点での勝率です。
| 前提 | 交換の勝率 | 根拠 |
|---|---|---|
| 標準ルール | 2/3 | 実測0.6663 |
| 司会者が知らずに開けてヤギ(モンティ・フォール) | 1/2 | 実測0.4992・Rosenthal |
| 開けるドアに癖q(ドア3が開いた場合) | 1/(1+q) | Morgan et al.・実測 |
| 当たりを選んだときだけ交換を提案(悪魔モンティ) | 0 | 定義から |
| ハズレを選んだときだけ交換を提案(天使モンティ) | 1 | 定義から |
| 当たりやすさA50%・B20%・C30%でAを選択 | Bが開けば6/11、Cが開けば4/9 | 実測 |
交換の提案が義務でない場合:悪魔モンティと天使モンティ
司会者が中身を知ったうえで、交換を提案するかどうかを自分で選べるとします。プレイヤーが当たりを選んだときだけ交換を持ちかける司会者は、日本語版ウィキペディアの変形問題の節で「悪魔モンティ」と呼ばれています。この司会者から提案が来た時点で、最初のドアは必ず当たりです。交換の勝率は0になります。逆に、ハズレを選んだときだけ提案する「天使モンティ」なら交換の勝率は1です。
Monty Hall本人も記者の前でこの進行を実演しています(次章)。出題文に「司会者は必ず交換を提案する」と書かれていなければ、2/3は保証されません。
当選確率が異なるドアと開放後の交換判断
NABENAVIの解説記事が「直観的説明」の反例として挙げている設定を使い、ここではシミュレーションでも確かめます。3つのドアに当たりが置かれる確率が、A=50%、B=20%、C=30%だと分かっているとします。プレイヤーは最も当たりやすいAを選び、司会者は中身を知っていて必ずハズレを開け、両方ハズレならBとCを等確率で選びます。ベイズの定理の表で事前確率の列を書き換えると、Bが開いた場合はAが5/11、Cが6/11、Cが開いた場合はAが5/9、Bが4/9になります。
import random
def unequal(n, prior, seed=3):
rng = random.Random(seed)
tally = {1: [0, 0, 0], 2: [0, 0, 0]}
for _ in range(n):
car = rng.choices([0, 1, 2], weights=prior)[0]
opened = rng.choice([d for d in (1, 2) if d != car])
rest = 3 - opened
tally[opened][0] += 1
tally[opened][1] += car == 0
tally[opened][2] += car == rest
return tally
names = "ABC"
for opened, (cnt, stay, switch) in sorted(unequal(1000000, [0.5, 0.2, 0.3]).items()):
print(f"開いたのが{names[opened]}: 変えない={stay / cnt:.4f} "
f"変える={switch / cnt:.4f} 該当回数={cnt}")
開いたのがB: 変えない=0.4538 変える=0.5462 該当回数=550132
開いたのがC: 変えない=0.5559 変える=0.4441 該当回数=449868
Cが開いたときは、変えないほうが0.5559対0.4441で有利です。最初のドアの確率も、Bが開けば0.5から5/11に下がり、Cが開けば5/9に上がっています。「最初のドアの確率は変わらない」という説明がこの場面で外れるのは、事前確率に差があると、司会者がどちらのドアを開けるかが当たりの位置について情報を持つからです。開いたドアを見て「Bなら交換、Cならそのまま」と決めれば、勝率は0.55×6/11+0.45×5/9=0.55になり、常に交換する場合の0.5を上回ります。当たりの置き方に偏りがある問題では、「常に交換」ではなく開いたドアごとに判断するのが正解です。
出典と経緯:1975年のSelvinによる初出
この問題を世に広めたのはvos Savantですが、最初に活字にしたのは彼女ではありません。カリフォルニア大学バークレー校の生物統計学者Steve Selvinが、1975年2月のThe American Statistician誌29巻1号の読者投稿欄に「A problem in probability」を寄せたのが初出です(67ページ)。反響を受けて同年8月の29巻3号に2通目を寄せており、そのタイトル「On the Monty Hall problem」(134ページ)で、番組司会者Monty Hallの名を冠した呼び名が定着しました。さらに前史として、Martin Gardnerが1959年10月のScientific American誌の連載で扱った三囚人問題があり、仮定の置き方によっては数学的に同一の問題になります。
論争になったのは1990年9月9日、Parade誌の連載「Ask Marilyn」に掲載されてからです。ニューヨーク・タイムズによれば、vos Savantのもとには約1万通の手紙が届き、その大半が彼女の答えを否定するものでした。批判的な手紙のうち約1,000通には博士号保持者の署名があり、多くは数学科や理学部の便箋に書かれていたと報じられています。
興味深いのは、当のMonty Hall本人が1991年に記者の前で行った実演です。同紙によれば、変えない戦略で10回試して車4台とヤギ6匹、次に変える戦略で10回試して車8台とヤギ2匹という結果になり、Hallは「So her answer’s right: you should switch」と述べました。そのあと彼は、プレイヤーが最初にハズレのドアを選んだ回は即座にそのドアを開けてヤギを渡し、当たりのドアを選んだ回だけ交換させる進行を実演し、「Where does it say I have to let you switch every time? I’m the master of the show.」と言いました。同紙は実際の番組についても「he did have the option of not offering the switch, and he usually did not offer it」と記しています。Hall自身の結論は「If the host is required to open a door all the time and offer you a switch, then you should take the switch. But if he has the choice whether to allow a switch or not, beware.」でした。
数学者でも直感は外れます。Andrew Vazsonyiは、1995年に自宅を訪れたPaul Erdosにこの問題と答えを話したときの反応を書き残しています。Erdosは「No, that is impossible, it should make no difference.」と返し、決定木でもベイズでも納得せず、最後にシミュレーションを見せてようやく「still did not understand the reason why, but was reluctantly convinced that I was right」という状態になったといいます。ただしVazsonyiは、Erdosが数日後に電話をよこし、AT&TのRon Grahamから理由の説明を受けたと伝えてきたことも書き添えています(Decision Line, 1998年12月/1999年1月号, pp.17-19)。
よくある質問
モンティ・ホール問題はなぜ納得できないのですか?
残ったドアが2つなので五分五分に見えるからです。しかし標準ルールでは、当たりは等確率に置かれ、司会者は中身を知っていて必ずハズレを開け、両方ハズレのときはどちらを開けるかに癖がありません。この条件のもとでは、ドアが開いても最初のドアの確率は1/3のままです。最初にハズレを選ぶ確率は2/3で、その場合は司会者がもう一方のハズレを開けるため、交換先が必ず当たりになります。「おかしい」と感じる人が多いのは、出題文が司会者のルールを書き切っていないことも一因です。交換の提案が義務でなければ2/3は保証されないと、Monty Hall本人も指摘しています。
扉を変えると当たる確率はいくつですか?
標準ルールでは2/3で、変えない場合の1/3のちょうど2倍です。100万回のシミュレーションでも、変えない場合0.3337、変える場合0.6663でした。
司会者が中身を知らない場合も交換したほうがよいですか?
交換しても勝率は変わりません。司会者が偶然ドアを開けてたまたまヤギだった回に限ると、変えても変えなくても1/2です(モンティ・フォール問題)。交換が不利になるわけでもないので、迷うなら交換して構いません。
モンティ・ホール問題を最初に発表したのは誰ですか?
1975年2月にThe American Statistician誌へ投書したSteve Selvinです。1990年のMarilyn vos SavantによるParade誌の記事は、この問題を一般に広めた出来事であって初出ではありません。「Monty Hall problem」という呼び名はSelvinの2通目の投書のタイトルに由来します。
モンティ・ホール問題に似た問題はありますか?
代表は三囚人問題です。3人のうち1人だけが恩赦を受けると知った囚人が、看守から「残る2人のうちこの1人は処刑される」と聞いた後の自分の助かる確率を問う問題で、仮定の置き方によってはモンティ・ホール問題と数学的に同じです。2人の子供の性別問題も同じ型で、情報を得る手続きで答えが変わります。男女を独立・等確率とするモデルでは、男児を含む2人きょうだいの家庭から無作為に選ぶと2人とも男児である確率は1/3ですが、無作為に選んだ子が男児だった場合、もう1人も男児である確率は1/2です。場合分けを図で追うなら樹形図が使えます。