通过MCP连接 →

输入计算

默认填 365;若要计入闰日则填 366。

数学公式

广告

结果

Chance of at least one shared birthday (n = 57)
99.01%
probability = 0.9901

The probability first reaches or exceeds 50% at a group of 57 people (days in year = 365).

人数 n No match p̅(n) 无重复 % 至少一对相同 p(n) 重复 %
57 0.009878 0.99% 0.990122 99.01%

什么是生日悖论?

生日悖论指的是这样一个出人意料的事实:在一个仅有 23 人的群体中,存在两人生日相同的概率就已经超过了一半。之所以让人觉得"不可能",是因为大家往往想象的是别人要和自己同一天生日;但实际的计算统计的是任意一对相同生日,而群体中可以两两配对的组合数随人数增加迅速膨胀。这是一个纯粹的概率问题,在任何地区都同样成立。

一条上升的S形曲线,在约23人的群体处越过50%概率线
生日相同的概率快速上升,在约23人时超过50%。

如何使用这个计算器

输入最小人数("起始人数")、最大人数("结束人数"),并可选择性地修改一年的天数(默认为 365 天,若要把 2 月 29 日算进去则填 366)。工具会生成一张表格,每种人数对应一行,并给出两个概率:没有任何两人同生日的概率,以及至少有一对同生日的概率。它还会告诉你,从哪个人数开始,同生日的概率首次达到 50%。

计算公式

设 \(D\) 为一年的天数。\(n\) 个人生日全都不同的概率,等于可选天数逐渐减少的连乘积:

$$\bar{p}(n) = \frac{D}{D} \times \frac{D-1}{D} \times \cdots \times \frac{D-n+1}{D}$$

而至少有一对生日相同的概率就是

$$p(n) = 1 - \bar{p}(n)$$

我们采用逐项相乘的方式来避免出现巨大的阶乘;一旦 \(n\) 超过 \(D\),根据鸽笼原理,"无重复"的概率必然降为 0。

Advertisement
人们被分配到日历的日期上,每个人可用的日期少一天
统计所有人生日都不同的情况:每多一人就少一个空闲日,得到乘积 \((D-k)/D\)。

实例演算

取 \(D = 365\)、\(n = 23\),将 \(\frac{365}{365}\cdot\frac{364}{365}\cdots\frac{343}{365}\) 连乘,得到 \(\bar{p}(23) \approx 0.492703\),于是

$$p(23) \approx 0.507297$$

即约 50.73% 的概率。当 \(n = 2\) 时,概率仅为 0.27%;而到 \(n = 50\) 时,概率已上升到约 97.04%。

Advertisement

常见阈值:给定概率需要多少人?

经典的生日悖论令人惊讶,因为共享生日的概率增长速度远快于直觉所预期。下表显示了在概率 \(P(n)\) 首次达到各个常见阈值的最小组大小 \(n\),假设 \(D = 365\) 天且生日均匀分布(忽略闰年和季节性出生模式)。

目标概率 组大小 \(n\) 该大小下的实际 \(P(n)\)
10% 9 11.6%
50% 23 50.7%
90% 41 90.3%
95% 47 95.0%
99% 57 99.0%
99.9% 70 99.92%

最著名的里程碑是仅仅 23个人,这足以使共享生日比不共享的可能性更大。请注意,概率在中间范围内上升陡峭——从23个人的50%概率增加到仅57个人的几乎确定的99%——然后随着接近100%而变平,因为相对于已存在的配对机会,每增加一个人所增加的新配对机会数量更少。

常见问题

为什么这么早就超过 50% 了?因为 23 个人可以组成 253 个不同的配对,其中任意一对都有可能生日相同。

是否考虑了闰年或生日分布不均?没有。它假设 365 天(或 366 天)每天出生的可能性相等;现实中生日的集中分布只会让同生日的概率更高。

人数超过 365 时会怎样?此时必然出现重复,因此 \(p(n) = 1\)。

最后更新: