誕生日のパラドックス エクスプローラー

誕生日が一致する確率とグループの人数の関係

インタラクティブシミュレーションを読み込んでいます...

レッスン

理論 — 誕生日のパラドックス エクスプローラー

誕生日問題は、グループ内の少なくとも2人の誕生日が一致する確率を求める問題です。誰かがあなたと同じ誕生日である確率ではなく、特定の日付についての話でもありません — この違いこそが、直感と答えに違和感を生む理由のすべてです。

各記号の意味

P(match)
いずれかのペアで誕生日が一致する確率 — メインとなる数値で、n = 23 のとき 50.7% となります。
P(all unique)
どの2人も誕生日が一致しない確率。2つの確率を足すと常に100%になります:50.7% + 49.3%
pairs
グループ内に存在するペアの数n(n−1)/2 — 23人の場合は 253 ペアとなり、確率を大きく跳ね上げているのは人数の多さではなく、このペアの多さです。

表示の読み方

まず2つの確率が表示され、次にペアの数、そして順を追ったステップ解説が続きます。その下の数式は、何が掛け合わされたかを正確に示しています:1 − (365/365 × 364/365 × ⋯ × 343/365)。1人につき1つの因数が対応し、最後は 1 − 0.492703 = 0.507297 となります。それぞれの因数は、次の人の誕生日が、すでに埋まっているどの誕生日とも重ならない確率を表しています。

前提
365日のどの誕生日も同様に確からしく、人々の間で独立であると仮定しています。うるう日なし、双子なし、出生の季節的な偏りなし — 現実世界ではこれら3つはすべて成り立ちません。だからこそ、これは人口統計の予測ではなく、すっきりとした理想的なモデルなのです。
成り立たない場合
一様(均等)であるという仮定は、想像されるような保守的な見積もりにはなっていません。現実の誕生日は季節的に偏っており、一様性からのいかなるずれも一致の確率を高めます — したがって、23人のときの 50.7% は下限値であり、単なる推計値ではありません。スライダーを80まで動かすと確率は四捨五入されて100%になりますが、実際に100%に達することはありません。366人未満である限り、誰の誕生日も重複しないという結果が起こり得るからです。

パラドックスの鍵は人数ではなくペアの数 🖖

人を数えるのをやめて、ペアを数え始めた瞬間にこのパラドックスは解ける。23人なら誕生日は23個しか比較しないと思いがちだが、実際にはC(23,2) = 253通りの異なるペアが存在し、そのどれか一つでも一致すればよい。人間の直感は「自分と同じ人が何人いるか」という線形に増える量に注目しがちだが、本当に重要な量であるペア比較の数は、n(n−1)/2という二次関数的な速さで増えていく。だからこそ確率曲線はこれほど早く跳ね上がる — n=23ですでに50%を超え、n=57では99%を超える。これは、この問題にO(n²)個もの一致のチャンスを与えているからだ。

なぜ逆を計算するのか 🖖

一致が生じるあらゆる場合を追うのではなく、このツールははるかに簡単な逆の問いを立てます。つまり「全員の誕生日が異なる確率はいくつか」です。人を一人ずつ加え、2人目は埋まった1日を避け(364/365)、3人目は2日を避け、と続けて、これら減っていく分数を掛け合わせ、100%から引きます。要点は、23人になると『全員が異なる』確率がついに半分を下回ることで、だからこそ23が転換点なのです。

同じ数学が暗号を破る 🖖

同じ論理がひそかにデジタル安全性を支配しています。ハッシュ関数を破る攻撃者が特定の標的を必要とすることはまれで、同じ出力を生む任意の2つの入力さえあれば十分です。これはまさに『どれか一組』の問題です。だからN通りの出力を持つハッシュは、N回ではなく約√N回の試行で誕生日攻撃に陥ります。ゆえに256ビットのハッシュは約128ビットの衝突耐性しか持たず、設計者は長さを2倍にする必要があるのです。

練習

自分で確かめる

まず答えを予想し、それから上のコントロールで確かめてください。予想を決めてから答えを開くこと。それが練習になる条件です。

  1. 10 人なら 45 組の組み合わせができ、各組が一致する確率はおよそ 365 分の 1 です。ここから 45/365 = 12.3% と見積もれそうですが、パネルは 11.7% と表示します。この手早い見積もりはどちら向きに外れていて、なぜその向きなのでしょうか。

    答えを表示
    過大評価です。しかも必ずそうなります。45 組の確率を足し上げると、二重の一致を何度も数えてしまいます。この和は包除原理の級数の第一項にすぎず、次の項は引き算だからです。パネルは代わりに正直な道を通ります。P(全員異なる) = (365/365)(364/365)…(356/365) = 88.3%、そして 100% − 88.3% = 11.7% です。差は急速に開きます。23 人では手早い和が 253/365 = 69.3% を出すのに対し、真の値は 50.7%。さらに組の数が 365 を超えると手早い和は 100% を突き抜けます。これこそ、それが最初から確率ではなかったことの最も明快な証拠です。
  2. 人数を最大の 80 まで上げてください。P(誕生日が一致) は 100% ではなく 99.99% と表示されます。誕生日の一致が本当に確実になるには、何人必要でしょうか。

    答えを表示
    366 人、2 月 29 日も認めるなら 367 人です。これは鳩の巣原理であり、確実性に至る唯一の道です。日付が 365 通りしかない以上、366 人が全員違うことはあり得ません。それ未満はどれほど近く見えても、たんに「ありそう」なだけです。スライダーが 80 で止まるのは、そこまでで曲線の仕事が終わるからです。すでに 99.99% に達しており、残る 286 人が買えるのは最後の 100 分の 1 パーセントだけです。n = 73 でパネルが小数第 2 位を足すのに注目してください。正当化できない 100% を印字する代わりに、そうしているのです。

全プロセスの詳細解説

  1. 同じ誕生日を共有する部屋の中の23人 5 ステップ

    誕生日が同じ人がいる確率が重ならない確率を上回るには、部屋に何人いる必要があるか?これを導出し、なぜ 23 人という数字が直感より遥かに小さく感じられるのかを説明せよ。

    1. 余事象を計算する。「少なくとも1組が同じ」を直接求めるのは、重複の仕方が一度に多様に生じ得るため扱いづらい。「全員が異なる」であれば、単一の明確な選択の積として表せる。

    2. 新しい人物が増えるたび、すでに占有された誕生日をすべて避けなければならないため、選択可能な日数は毎回1日ずつ減っていく。これらの分数を掛け合わせる。

    3. 1 から引く。上の探索ツールはまさにこれを表示しており、計算結果が半分を超える最初の n が 23 である。

    4. 比べるのは、自分とほかの22人だけではありません。どの二人の組も数えるため、組の数は集団の人数のおよそ二乗に応じて増えていきます。

    5. その2乗の成長は近似式にも明確に現れている。確率は 730 に対する n² の比に依存するため、境界点は 365 の一定割合ではなく平方根としてスケールする。

    解答

    23 people で 50.7% の確率。 直感が損なわれる原因は問いのすり替えにある。人は「誰かが の誕生日と同じ」という場面を想像し、五分五分の確率には 253 people が必要だと考える。しかし実際に問われているのは「私たちの中の任意の2人」であり、n = 23 において 253 pairs が存在する。平方根スケール(√N 依存)こそが一般的な教訓であり、ハッシュ衝突が N 回ではなく約 √N 回の挿入後に発生するのも同じ理由である。ハッシュ長を決定するのもこの算術である。

  2. 1年が365日の場合における23人に対する50.7%の法則 6 ステップ

    23 人で 50.7%。誰もが覚えている数は 23 ですが、それは結果のうち最も役に立たない部分です。365 日の 1 年にだけ属する数だからです。その下にある規則——カレンダーがハッシュ関数に変わっても生き残る規則——を見つけましょう。

    1. 厳密な答えは積です。2 人目が 1 人目と外れ、3 人目が 2 人とも外れ、と部屋を進んでいく。パネルが評価しているのはこの積です。

    2. 積のままでは考えにくいので対数を取ります。k が 365 に対して小さいうちは、各対数はほぼ引数そのものです。残るのは最初の n−1 個の整数の和です。

    3. 確率を 1/2 とおいて解きます。n² の項が n を圧倒するので答えは平方根になり、パネルの 23 から半人以内に着地します。

    4. では 365 を 1 つも含まない形で書きましょう。1 年は特別ではありませんでした。等確率の枠が N 個なら、折り返し点はおよそ 1.1774√N です。

    5. これを本当に効く場所に当てはめます。32 ビットのハッシュには 2³² 個の枠があり、途方もなく聞こえます——しかし途方もない数の平方根は途方もなくありません。

    6. それを、引いてくる空間の大きさと比べてみてください。

    解答

    しきい値は N/2 ではなく √N のように育ちます——32 ビットのハッシュなら 77,162 個、空間の 0.0018% で、衝突のほうが起きやすくなります。これが誕生日攻撃であり、32 ビットのチェックサムが大規模な重複排除に使えない理由であり、ハッシュ出力のビット長が平方根をあらかじめ織り込んで決められる理由でもあります。パネルの 23 はこの曲線上のただ 1 点。移し替えられるのは曲線のほうです。

学習の道すじ

2つの値が衝突するとき

この次に ハッシュテーブル ペアの数え上げの論理と、余事象(何も衝突しない確率)を計算する習慣。ハッシュテーブルの解析とは、365日をバケット数に置き換えた全く同じ計算です。

参考文献 (1)

例題

  • オフィス n=10 - n=10 -> 確率11.7% - 一見安全に思えるが、実は45通りの組み合わせがすでに比較されている
  • クラス n=23 - n=23 -> 確率50.7% - 有名な転換点:起こる方がむしろ可能性が高い
  • 部屋 n=30 - n=30 -> 確率70.6% - 一般的な教室ではおよそ3人に2人の割合
  • ホール n=57 - n=57 -> 確率99.0% - わずか57人でほぼ確実