誕生日問題 ─ 23人で50%を超える不思議
前回(W3 モンティ・ホール)に続いて、直感の罠 の2本目です。
ある部屋に 23 人 いれば、その中に 同じ誕生日の人のペア が存在する確率は 50% を超えます。1年は 365 日もあるのに、たった 23 人で、です。
多くの人は「せめて 180 人くらい必要では?」と直感的に答えます。それが間違いです。しかもこの直感と現実の 桁違いのズレ は、ハッシュ関数の衝突攻撃から、医療検査の多重検定問題まで、まったく同じ姿で日常に潜んでいます。
L1|ショックな数字
正確な数字をいくつか並べてみます。
| 部屋の人数 | 誕生日のペアが存在する確率 |
|---|---|
| 10 人 | 約 11.7% |
| 23 人 | 約 50.7% |
| 30 人 | 約 70.6% |
| 50 人 | 約 97.0% |
| 70 人 | 約 99.9% |
| 100 人 | 約 99.9999% |
30 人のクラスなら、7 割の確率で誕生日が被る 2 人がいる。日本の学校の 1 クラス(35〜40 人)なら、ほぼ確実に 1 ペア存在します。
一度でも「クラスで誕生日が被った子がいた」記憶がある方は、それは偶然ではなく、ほぼ必然 だったわけです。
L2|なぜ直感は間違うのか
直感を狂わせる犯人は、“あなた” を主語にしてしまうこと です。
多くの人は無意識に、こう考えます:
「私と同じ誕生日の人が、部屋にいる確率」
これは実際、小さい数字です。23 人の部屋なら、約 5.9% しかありません。180 人以上集まって、ようやく 50% を超える。「180 人くらい必要」という直感は、こちらを計算しているのです。
ところが、誕生日問題の問いは違います:
「部屋の 誰かと誰か が、同じ誕生日である確率」
主語が「私」から「誰かと誰か」に変わる。比較対象が爆発的に増える。
23 人の部屋では、ペアの作り方が 通りあります。253 本の “照合” が同時に走ると考えれば、1 ペアでも引っかかる確率が、50% を超えるのは、むしろ自然に見えてきます。
一言まとめ:主語を「私」から「全員 vs 全員」に変えると、確率は爆発する。これが誕生日問題の正体です。
L3|数式で確認する
365 日の中から、 人が独立に等確率で生まれる、と仮定します(うるう年は無視)。
ペアが「存在しない」確率は、全員の誕生日が互いに違う確率です:
したがってペアが存在する確率は:
を代入すると:
ちょうど 50% の少し上。 なら 99.9% を超えます。
近似式(ざっくり頭に入れたい時)
正確な積は電卓が要りますが、近似式を使うと紙で見積れます:
は「ペアの個数 」そのもの。ペアの個数が に近づくと、確率はぐんと上がる。ペア数 日数 になる が目安** — それが約 ()です。
L4|「あなたと同じ」との混同
L2 で触れた混同を、もう一度、きれいに整理します。
| 問い | 23 人での確率 | 50% を超える人数 |
|---|---|---|
| 部屋のどこかに同じペアがいる | 約 50.7% | 23 人 |
| 私と同じ誕生日の人がいる | 約 5.9% | 約 253 人 |
同じ “誕生日が被る” でも、主語が違うと、数字が 10 倍以上違う。日常の会話で「同じ誕生日の人がいた!」と驚くのは、だいたい後者の “珍しい” 側を想定していて、前者の “普通に起きる” 側を見落としているケースです。
L5|暗号学の “誕生日攻撃”
誕生日問題は、純粋なパズルではなく、現代の暗号学の 攻撃手法の名前 です。
ハッシュ関数(例えば SHA-1)は、入力を固定長のビット列に圧縮します。SHA-1 なら 160 ビット、つまり 通りの出力空間がある。
ある入力の “原像” を見つけるには、ざっくり 回の試行が要る。これは実質不可能、だから安全、と直感的には思えます。
ところが、“衝突” を見つけるだけなら、ざっくり 回で済んでしまう。これが誕生日問題と同じ構造です。
- 原像攻撃:「このハッシュ値になる入力を見つける」 → 必要
- 衝突攻撃:「ハッシュ値が同じになる 2 つの入力を見つける」 → で足りる
は、2017 年、Google が実際に SHA-1 の衝突ペアを作成 して現実化しました(SHAttered 攻撃)。これ以降、SHA-1 は “電子署名用途では使ってはいけない” ハッシュ関数に格下げされます。
ポイント:攻撃者は「特定のハッシュ」を再現する必要はない。「どれでもいいから被るペア」を探せば勝ち。これが、 の壁を に落とす。23 人問題の、デジタル版です。
L6|日常の多重検定問題(研究者コラム)
もう一歩、学問の世界に降りてみます。
仮説検定 は、何かを統計的に主張するときの道具です。「この薬は効く」「このデータは偶然ではない」。普通は、有意水準 を使って、「偶然でこの結果が出る確率が 5% 以下」なら主張を採択します。
しかし、同じ実験で複数の検定を同時に行う とき、何かが引っかかる確率は、ぐんと上がります。
- 1 回の検定で “偶然引っかかる” 確率:5%
- 独立な 20 回の検定で、少なくとも 1 回引っかかる確率: 64.2%
- 独立な 100 回の検定で、少なくとも 1 回引っかかる確率: 99.4%
これは 多重検定問題(multiple testing problem)と呼ばれ、医療統計・遺伝子データ解析・金融実証研究で、最大級の落とし穴 の一つです。
ある遺伝子検査で、2 万個の遺伝子について「病気との関連」を 1 つずつ検定したら、仮に病気と関連する遺伝子が 1 つも無くても、約 1000 個が「偶然」有意に出る。23 人問題と同じ、“全員 vs 全員” で確率が爆発する構造です。
対処法
- Bonferroni 補正: を検定数で割る(粗いが安全)
- Benjamini–Hochberg 法:False Discovery Rate を制御(主流)
- 事前登録(pre-registration):検定を “後出し” しない
学術文献(既発表のみ)
- Flajolet, Gardy & Thimonier (1992) “Birthday paradox, coupon collectors, caching algorithms and self-organizing search” ─ 誕生日問題の計算機科学への応用を体系化
- Diaconis & Mosteller (1989) “Methods for Studying Coincidences” (Journal of the American Statistical Association) ─ 偶然の一致を統計的に扱う古典
- Benjamini & Hochberg (1995) “Controlling the false discovery rate” (JRSS-B) ─ 多重検定の革命的論文、現代の医療統計の標準
- Ioannidis (2005) “Why most published research findings are false” (PLoS Medicine) ─ 多重検定・pハッキングの大問題を世に問うた
一般読者に持ち帰ってほしいこと
- “被る” 確率は、主語が「私 vs 全員」か「全員 vs 全員」かで、桁が変わる
- SHA-1 の崩壊、医療統計の偽陽性 ─ 全部、23 人問題の “大人版”
- 「たくさん試す」と「何かは当たる」。日常の判断にも効く
おわりに
23 人という小さな数字から始まった話は、暗号学のハッシュ衝突、医療統計の多重検定まで、同じ構造が形を変えて 現れていました。
| 文脈 | 23 人問題の対応物 |
|---|---|
| 誕生日 | 365 日の中で “被る” |
| SHA-1 | の空間で “被る” |
| 多重検定 | 20,000 遺伝子で “何かが引っかかる” |
共通するのは、比較対象の数が増えると、確率は “線形” ではなく “二乗で” 増える という事実です。 の爆発。これが直感を狂わせる犯人。
次の週からは、再び お金 のテーマに戻ります。W5:住宅ローン ─ 変動 vs 固定の数学 を予定しています。この縦筋も、気付かないうちに人生の破滅確率に効いてくる話。お楽しみに。