生日問題(birthday problem)
生日問題問了一個看似簡單的問題:在一個只有 23 人的房間裡,至少有兩人生日相同的機會是多少?多數人會猜一個很小的數,因為自己的生日被一位陌生人撞上,大約只有 365 分之 1 的時候。令人驚訝的答案是:23 人時,存在某對共享生日的機率已經超過一半,約 50.7%。它之所以被稱為悖論,並不是因為它違反任何規則,而是因為它與一個自信卻錯誤的直覺正面相撞。
竅門在於數清楚你真正在問什麼。你問的不是「有沒有人和你相同」;你問的是「群體中任何一對是否相同」,而對數成長得很快——23 人造出 23 × 22 / 2 = 253 個不同的對,每一對都是一次新的相撞機會。乾淨的算法用補集規則:求「所有生日都不同」的機率,再用 1 去減。在目前為止全都不同的條件下,第二人必須避開 1 個生日(364/365),第三人必須避開 2 個(363/365),以此類推。把這些對 23 人乘出來,你得到 P(全不同) ≈ 0.493,所以 P(存在共享生日) = 1 - 0.493 ≈ 0.507。
生日問題是整個學科的一則教學寓言:它顯示了為什麼生硬的直覺需要公理的紀律與仔細的計數。這個教訓的推廣遠遠超出生日——它解釋了為什麼雜湊表碰撞與密碼學中的「生日攻擊」遠比新手預期的更早發生。每當許多項目各自與許多其他項目相比較時,驅動驚奇的是比較的次數,而非項目的數目,唯有一次仔細的補集計算能馴服它。
23 人時,P(所有生日都不同) = (365/365)(364/365)(363/365)...(343/365) ≈ 0.493,所以 P(至少兩人相同) ≈ 0.507。把人數加到 50,存在共享生日的機率就飆升到約 0.97。
數對,不是數人;補集「全不同」讓這個驚人的答案變得容易計算。
直覺陷阱是把陌生人和「你自己」比較;真正的問題是「任何一對」相同,而 23 人有 253 個對,不是 22 個。