定理

生日悖論:為什麼只要 23 個人就可能有人同一天生日

2026年7月20日閱讀時間 2 分鐘
生日悖論:為什麼只要 23 個人就可能有人同一天生日

2014 年世界盃,記者檢查了全部 32 支球隊。每支球隊恰好有 23 名球員,而在 32 隊中有 16 隊,也就是一半,至少有兩名球員同一天生日。沒有人刻意安排這件事。這就是 23 這個數字會做的事。

這就是生日悖論:在 23 個人的房間裡,有人同一天生日的可能性比沒有更大。生日有 365 種可能,人卻只有 23 個,這個說法聽起來荒謬,而這種反應幾乎人人都有。但這個結果不是把戲,不是統計幻覺,也不依賴細微的但書。它是一個簡短的計數論證,而一旦你看出直覺做的是哪一種計數、而不是正確的那一種,這個悖論就會化解成幾乎顯而易見的事。

謹慎地陳述這個主張

取 23 個人,他們的生日互相獨立,且落在 365 天中任何一天的機率都相同,暫時忽略 2 月 29 日。主張是:

至少有兩個人同一天生日的機率是 50.7%,比擲硬幣猜中的機會略高一點。

有兩個細節很重要。第一,這個主張說的是任意兩個人相同,而不是和某個特定的人相同。第二,「同一天生日」指的是一年中的同一天,例如 3 月 14 日,而不是同年同月同日。這兩個細節聽起來都不重要。但正如我們將看到的,其中一個就是整個悖論的所在。

證明只是計數

直接問「有人和某人相同的機率是多少」,很難正面處理,因為撞期可以用許多互相重疊的方式發生。機率論對此有標準的做法:先計算什麼都不發生的機率,再用 1 去減。想從頭了解這個做法為什麼合理,請見直覺理解機率。

1

算出機會的數量:23 個人組成 253 個配對

同一天生日是一對人的性質。有 23 個人時,不同配對的數量是 23×222=253\frac{23 \times 22}{2} = 253。每一對單獨來看,撞期的機率是 1/3651/365,非常小。但這場樂透有 253 張彩券,不是 22 張,更不是 1 張。這個數量是整個主題的核心。

2

計算所有生日都不同的機率

讓大家排成一列,一次加入一個人。第一個人可以隨意選一天:機率是 365/365。第二個人要避開撞期,必須落在剩下 364 天中的任何一天:機率是 364/365。第三個人必須避開兩個已被占用的日子:363/365。每一位新來的人要多避開一天,第 23 位必須避開 22 個已被占用的日子:343/365。由於生日互相獨立,23 個人全都不同的機率,就是所有這些分數的乘積。

3

乘出來,再取補集

365365×364365×363365×⋯×343365≈0.4927\frac{365}{365} \times \frac{364}{365} \times \frac{363}{365} \times \dots \times \frac{343}{365} \approx 0.4927

這是完全沒有人撞期的機率。所以至少有一個人同一天生日的機率是 1−0.4927=0.50731 - 0.4927 = 0.5073,剛好超過二分之一。在 22 個人時,同樣的乘積是 47.6%,仍低於一半。這條線恰好在 23 個人時被跨過。

這就是整個證明:數一數配對,看出撞期為什麼合理,再把 23 個分數乘起來,看出它究竟有多合理。沒有進階的工具,沒有任何事要靠信念接受。每一步都能用計算機驗證。

Chance that some pair shares a birthday50%11.7%1050.7%2370.6%3097.0%5099.9%70people in the room23 people · 253 pairs · 50.7%

而且曲線繼續快速攀升。30 個人時,撞期的機率是 70.6%。50 個人時是 97.0%。70 個人時是 99.9%:在一年中還有 295 天沒被碰到的時候,有人同一天生日幾乎已是必然。

直覺哪裡出錯

生日悖論總是穩定地騙過人,而且騙的方式明確可診斷:他們回答了錯誤的問題。

聽到這個謎題,你的腦袋會悄悄換成一個以你為主角的版本。這裡有人和我同一天生日的機率有多大?這個問題的答案確實很小。在 23 個人的房間裡,只有另外 22 個人,每一個人和你相同的機率是 1/3651/365,有任何人和你相同的總機率大約是 6%。如果謎題問的是你的生日,懷疑者就是對的。

但謎題問的是任何撞期。你對上其他每個人:22 對。但也有第 2 個人對上第 3 個人、第 7 個人對上第 19 個人,以及所有完全不牽涉到你的其他組合:另外 231 對,總共 253 對。直覺只數得到自己從內部能想像的那 22 次比較,在結構上看不到自己不在其中的 231 次。悖論並不是機率表現得很奇怪,而是 23 個人的房間裡的比較次數,是任何一個人所經歷的十一倍。

有一個整齊的方式可以看出這個差距有多大。要讓某人與你本人同一天生日的機率達到 50%,其他 22 個人遠遠不夠:除了你自己以外,你需要 253 個人。要和一個固定的生日撞期所需的其他人數,與 23 個人之間的配對數相同。這不是巧合,而是兩個問題用同樣的算術解決,它精確地衡量了「我的生日」這種說法把情況低估了多少。

讓答案誠實的但書

上述計算假設有 365 個機率相同的生日,且沒有閏日。這兩個假設在真實世界中都不成立,所以問 50.7% 能否經得起現實的考驗,是合理的。

它經得起,而且事實上現實還幫了忙。把 2 月 29 日加進來,當作罕見的第 366 天,會讓機率略微降低,但幅度太小,不足以把門檻從 23 移開。生日不均勻則往另一個方向推:真實的出生資料顯示有季節性的高峰,某些月份穩定地比其他月份擁擠。任何這類不均勻都會讓碰撞更容易發生,因為把機率集中到熱門日子上,正是碰撞賴以為生的條件。均勻的模型是這個悖論最困難的設定,卻仍然超過了 50%。

這種穩健性值得停下來想一想,因為它與帶有悖論色彩的謎題通常的行為正好相反。例如蒙提霍爾問題就以對細節非常敏感聞名:改變主持人知道什麼,答案就會改變。生日悖論是那個穩固的兄弟。每一個偏離教科書假設的現實情形,都會把機率往上推,所以這份驚訝經得起每一個吹毛求疵。

從派對把戲到破解雜湊函數

生日悖論當成派對賭局就已經物有所值,但它也有一份嚴肅的工作。在密碼學中,它決定了尋找碰撞的代價,一整套攻擊策略就以它命名。

雜湊函數把任何輸入壓縮成固定大小的指紋,而安全性通常取決於沒有人找得到兩個不同的輸入卻有相同的指紋。假設指紋是 128 位元,也就是有 2 的 128 次方種可能,是個天文數字。猜出一個能對應到某個特定指紋的輸入,確實需要大約 2 的 128 次方次嘗試,永遠無望。但只想找到任何碰撞、也就是任意兩個結果一致的輸入的攻擊者,玩的是生日遊戲:產生隨機輸入,依照平方根法則,大約在 2 的 64 次方次嘗試後預期會出現碰撞。這就是生日攻擊,而 2 的 64 次方雖然是個很大的數,卻不安全;意志堅決的攻擊者已經跨過它了。

換句話說,這個悖論把雜湊的有效強度以位元計減少了一半。這就是為什麼想要 128 位元抗碰撞性的密碼學家,會使用 256 位元輸出的雜湊:2 的 256 次方的平方根是 2 的 128 次方,連生日捷徑也遙不可及。同一個模式既決定了你派對要邀請多少人,也決定了保護你銀行連線的位元數,而且兩次用的都是同一套計算。

動手試試,因為不花任何成本

就像最好的機率結果一樣,這個結果很便宜就能測試。任何大約 25 人的團體都可以:一間教室、一層辦公室、一份球隊名單、一份婚宴賓客名單。問每個人的生日,看看有沒有撞期。當然,單一團體無法證明什麼。主張是 50.7%,不是確定,所以這個賭局幾乎有一半的時間會輸。

有說服力的做法是重複。運動隊伍的名單特別適合這件事,這就是為什麼世界盃一直出現在生日悖論的文章裡:23 人的球隊,就是恰好在門檻大小的實驗,早已組好而且公開。查十支球隊,你應該預期大約五支會有撞期。或者用模擬:幾行程式碼,從 1 到 365 隨機分配 23 個數字並檢查有沒有重複,跑一萬次,結果與 0.507 的差距會在一個百分點以內。把 23 個分數相乘的論證做出了精確的預測,世界一再與它吻合,很少有更快的方式能讓人感受到機率變得真實。

這裡面的禪意

生日悖論之所以長存,是因為它是一種普遍失誤模式的完美縮影。直覺從單一的觀點評估情境,也就是你自己的觀點,而在組合式的情境中,單一觀點的偏差會隨人群增加而成長。隨機性本身沒有任何不守規矩。錯誤完全在於哪一個問題被悄悄地回答了。

而解藥和機率論中一向的解藥相同:拒絕猜測,去計數。數一數配對,合理性就出現了。把分數乘起來,精確的數字就掉出來了。同樣的計數隨後原封不動地出現在密碼系統的設計中,這是整個主題安靜的一課:一個機率論證並不知道自己是被用在酒吧賭局,還是被用來保護網路安全。

二十三個人。兩百五十三次機會。這個房間從來沒有看起來那麼空。

常見問題

什麼是生日悖論?
這個事實是:在只有 23 個人的團體中,至少有兩個人同一天生日的機率略高於 50%。30 個人時約為 71%,50 個人時約為 97%,70 個人時約為 99.9%。它被稱為悖論,並不是因為數學有爭議,而是因為 23 這個數字讓人覺得實在太小。這個結果來自普通的機率,做法是把每一對人都算進去,而不是只拿大家跟一個固定的生日比較。
為什麼生日悖論的關鍵數字是 23?
因為 23 個人會組成 253 個不同的配對,而每一對都是一次新的撞期機會。全部 253 對都避開撞期的機率,恰好在 23 個人時降到二分之一以下:沒有人撞期的機率約為 49.3%,所以有人同一天生日的機率約為 50.7%。數字裡還藏著一個漂亮的巧合:365 乘以 2 的自然對數,幾乎剛好等於 253,這就是五五波的分界點會落在這裡的原因。
為什麼生日悖論讓人覺得這麼不對勁?
因為直覺回答的是另一個問題。聽到這個謎題時,你會本能地想像有人和自己的生日相同,而在 23 個人的房間裡,這樣的機會只有 22 次,機率大約 6%。但真正的問題是任何兩個人是否相同,這牽涉到 253 個配對,其中大多數跟你完全無關。直覺只追蹤它能想像的那 22 次比較,完全漏掉了自己不在其中的 231 個配對。
密碼學中的生日攻擊是什麼?
這是直接以這個悖論命名的攻擊策略。雜湊函數的設計目標,是讓人很難找到兩個不同的輸入卻得到相同的輸出。生日悖論說明,隨機值之間的碰撞,大約在可能值數量的平方根次之後就會出現,而不是要用掉全部的數量。所以輸出有 2 的 128 次方種可能的雜湊,大約只要 2 的 64 次方次嘗試就能被攻擊,這就是密碼學家設定雜湊輸出長度,要讓連平方根都遙不可及的原因。
生日悖論有考慮閏年和生日分布不均的情形嗎?
標準的計算假設有 365 個機率相同的生日,並忽略 2 月 29 日,因為它太少見,幾乎不影響結果。真實的生日並非完全均勻,在許多國家有季節性的高峰,但這只會讓悖論更成立:生日分布的任何不均勻,都會讓碰撞更容易發生,而不是更不容易。所以 23 個人時的 50.7% 在實務上是下限,真實世界的機率會再高一點。

動手練一練

喜歡這樣一步步想通嗎?

Math Zen 把這種直覺變成每天的練習,用自適應題目涵蓋 24 個數學主題。

下載 iOS 版下載 Android 版

Math Zen 暂未在中国大陆的应用商店上架。

Not available in app stores in mainland China.

相關文章

機率是什麼?直覺理解機率,看穿「百萬分之一」的騙局

機率是什麼?直覺理解機率,看穿「百萬分之一」的騙局

機率之所以難以捉摸,是因為我們信直覺勝過信數學。機率其實就是數數:符合的結果除以所有結果。從這裡看懂獨立事件為何相乘、不放回抽牌的條件機率、生日悖論、基本率謬誤與賭徒謬誤,弄清「百萬分之一」到底是每什麼、涵蓋多少人,再學會快速估計機率的幾個做法,以及機率在天氣預報、醫療檢驗、保險與機器學習裡的樣子。

蒙提霍爾問題:為什麼換門能讓中獎機率加倍

蒙提霍爾問題:為什麼換門能讓中獎機率加倍

三扇門、一輛車,還有一位知道車在哪裡的主持人。蒙提霍爾問題中換門獲勝的機率是 2/3,是堅持不換的兩倍。本文用直接數情形的三步證明、100 扇門的放大版本,以及主持人行為如何改變答案的細節(包括「蒙提跌倒」變體),說明直覺為什麼會出錯,並教你用杯子、硬幣或幾行程式碼親手做實驗來驗證這個結果,還有歷史上的爭論。

統計學怎麼理解?「平均」藏起了什麼

統計學怎麼理解?「平均」藏起了什麼

統計學做兩件事:描述手上的資料,並推論看不到的母體。本文從平均數、中位數、標準差與鐘形曲線講起,一步步建立直覺而不用死背公式,說明偏斜資料中平均數為什麼會騙人,相關為何不等於因果,一千人的民調如何代表全國,以及新聞報導裡常見的統計陷阱要怎麼識破,例如被截斷的坐標軸、消失的分母、挑選過的起訖點與被平均掉的平均。