生日悖论
一个房间里要有多少人,才很可能有两人同一天生日?大多数人猜 180 人左右。答案只有 23 人:这时概率是 50.7%,57 人时已经达到 99%。这感觉不对,因为我们想到的是自己的生日,而这个悖论讲的是房间里的每一对人。 在一个只有 23 人的群体中,其中两人同一天生日的概率是 50.7%。这听起来高得离谱,因为我们想到的是自己的生日:有人和你同一天生日的概率只有 6%。但 23 人可以组成 253 对,每一对都可能同一天生日。点击生成新的一组,看配对越来越多;也可以逐个添加人,或者测试 1,000 组和每种人数,看曲线如何上升。
它是如何运作的
- 点击舞台,生成新的一组 23 人。他们逐个加入,每多一对就出现一条新线。
- 看日历:有两个生日的那一天会亮起来,提示信息会说出相同的生日。
- 按“自动测试”测试 1,000 组,或按“测试每种人数”,看概率从 2 人到 100 人如何上升。
为什么直觉会出错
在一个房间里,我们会不自觉地从自己出发思考:有人和我同一天生日的概率是多少?一年有 365 天,这个概率很小,有另外 22 人时约为 6%。但这个悖论问的是有没有某两个人生日相同:A 和 B、B 和 C、A 和 C,以此类推。23 人可以组成 23 × 22 / 2 = 253 对,每一对都是一次生日相同的机会。配对数随人数的平方增长,所以概率会迅速攀升。
计算
最简单的方法是先算出没有人生日相同的概率,再用 100% 减去它。第一个人可以是任何一天。第二个人生日不同的概率是 364/365,第三个人避开前两人的概率是 363/365,以此类推。对于 23 人:365/365 × 364/365 × 363/365 × … × 343/365 ≈ 49.3%。于是至少有两人同一天生日的概率是 100% − 49.3% = 50.7%。
和你同一天生日
群体中有人和你同一天生日的概率增长得慢得多:1 − (364/365)ⁿ⁻¹,因为所有配对中只有 n − 1 对包括你。23 人时这个概率是 5.9%,要有另外 253 人才会超过 50%。把问题切换到“有人和你生日相同”,比较两条曲线。
密码学中的生日攻击
这个悖论不只是聚会上的小把戏。在计算机安全领域,它是生日攻击的基础:要找到两个哈希值相同的输入,也就是一次碰撞,攻击者需要的尝试次数比你想象的少得多。对于有 N 种可能取值的哈希,大约尝试 √N 次而不是 N 次后,碰撞就很可能出现。正因如此,哈希和数字签名的输出必须足够长,让即使 √N 次尝试也无法做到:对于 128 位的哈希,找到一次碰撞大约需要 2⁶⁴ 次尝试。
常见问题
要有多少人,同一天生日的概率才达到 50%?
23 人。这时概率是 50.7%。30 人时是 70.6%,41 人时是 90.3%,57 人时是 99.0%,70 人时是 99.9%。
为什么叫悖论?
它并不矛盾,只是出人意料:答案违反直觉。大多数人猜需要 365 的一半左右,也就是大约 180 人,因为他们把每个人都拿来和自己比较,而不是让大家互相比较。
2 月 29 日和真实的出生日期呢?
和经典问题一样,这个应用假设 365 天的可能性相等。真实的生日在一年中分布得并不完全均匀,而分布不均匀会让同一天生日的可能性略微增大,而不是减小。
什么时候一定会有人同一天生日?
366 人时:一年只有 365 天,所以根据抽屉原理,366 人中至少有两人同一天生日。早在那之前就几乎可以肯定了:100 人时概率是 99.99997%。
这会上传什么吗?
不会。一切都在你浏览器里的画布上计算和绘制。保存会下载 PNG。编辑会在 PictorX 编辑器中打开那张图。
准备好尝试了吗?
在浏览器中打开 PictorX — 无需安装,无需信用卡即可启动。
前往编辑器