机房里流传着一个赌局:"咱们班 60 个人,我赌至少有两个人同一天生日。谁跟我赌?"
很多同学第一反应是:一年 365 天,60 个人才占 60/365 ≈ 16%,两个人撞生日的概率应该很小吧?于是纷纷应战。结果每次都是那位同学赢。
真相是:60 个人里至少有一对同生日的概率高达 99.4%。因为"同一天生日"不是"某个人和我同生日",而是任意两人之间的两两组合 —— 60 个人有 C(60,2) = 1770 对,而每对撞上的概率是 1/365。
算一下:没有任何两人同生日的概率是 (364/365)×(363/365)×…×(306/365) ≈ 0.006,那么至少一对同生日的概率就是 1 − 0.006 = 0.994。
这就是著名的生日悖论("悖论"只是因为它违反直觉,逻辑上毫无矛盾)。它背后站着的,正是本讲的第一个主角 —— 鸽巢原理(抽屉原理):366 只鸽子放进 365 个巢,必然有一只巢里有两只鸽子。
而当我们试图精确计算 C(60,2) 这类数字时,又会遇到第二个主角:二项式定理 —— 它把 (1+x)n 一次性展开,展开式里第 k 项的系数恰好就是 C(n,k)。
💡 故事背后的算法思想
鸽巢原理是"存在性证明"的万能锤。它不告诉你在哪儿撞,只斩钉截铁地说"一定撞"。竞赛里凡是题目问"是否必然存在""至少有多少"的,第一反应就该是抽屉原理。
二项式定理是"系数计算"的总公式。凡是问"展开式中 xnym 的系数是多少""所有系数之和是多少",答案都藏在 C(n,k) 里。它的证明本身就是一次教科书级的组合双计数:把 n 个 (a+b) 相乘,每个括号里选 a 还是选 b,选 k 次 b 的方案数就是 C(n,k)。
两者一个负责"证明存在",一个负责"算出数目",合起来就构成了组合数学中最常用的两根杠杆。