生日问题

                     

贡献者: lzq

1. 生日问题

   在概率论中,生日问题是最经典的概率论问题之一。生日问题探讨的是在一个集合中随机选择的人达到至少有两个人在同一天生日的概率。这个问题的常见形式是:

例 1 生日问题

   在一个房间里需要多少人,才能使得至少有两个人生日相同的概率至少为 50%?

   (为了简化分析过程,假设一年有 365 天,不考虑闰年的 2 月 29 日,并假设每个人的生日是完全随机、相互独立的,每天被选中的概率都是相等的。)

   要计算这个问题,我们可以采用"对立概率"的方法。我们首先计算所有人生日全都不同的概率,然后用 1 减去这个概率,得到至少有两个人生日相同的概率。

   当第一个人进入房间时,他/她的生日可以是一年中的任何一天,所以所有人生日都不同的概率是 1;当第二个人进入房间时,为了保证他/她的生日与第一个人不同,他/她的生日必须是剩下的 364 天中的任何一天,概率是 $\frac{364}{365}$;当第三个人进入房间时,这个概率变为 $\frac{364}{365} \times \frac{363}{365}$,依此类推。

   因此,当有 $n$ 个人在房间里时,所有人生日全都不同的概率可以用下面的公式表示:

\begin{equation} \begin{aligned} &P(\text{所有人生日不同}) = \frac{365}{365} \times \frac{364}{365} \times \cdots \times \frac{365-n+1}{365} \\ \\ &P(\text{至少两人生日相同)} = 1-P(\text{所有人生日不同}) \end{aligned} ~. \end{equation}
# 计算至少两个人生日相同的概率超过50%需要的人数
# 初始化变量
days_in_year = 365
prob = 1  # 所有人生日不同的初始概率
num_people = 0  # 房间内的人数

# 计算至少两个人生日相同的概率超过50%时的人数
while prob > 0.5:
    num_people += 1
    prob *= (days_in_year - num_people + 1) / days_in_year

num_people, 1 - prob  # 返回需要的人数和对应的概率
# 结果 
# (23, 0.5072972343239857)

   通过计算,我们发现仅需要 23 个人就可以使得 “至少有两个人生日相同” 的概率超过 50%。这个结果往往出乎大多数人的预期。

   因此,生日问题也被称为“生日悖论”(Birthday Paradox),并不是因为它在逻辑上是一个真正的悖论,而是因为它的结果与直觉和日常经验强烈对立,给人带来了意外或 “悖论” 的感觉。在这个上下文中,“悖论” 用来描述一个看似违反常识的事实:在一个相对较小的集合中随机选择的元素出现重复的概率远比大多数人预期的要高。

   生日 “悖论” 实际上揭示了人类在直观地处理概率问题时的局限性,并且强调了数学和统计方法在预测不直观问题中的价值。这个 “悖论” 也经常被用来教育和展示在概率论和统计学中,直觉可能会如何误导我们,以及为什么在处理概率信息时进行严格的数学分析是必要的。

   参考:普林斯顿概率论读本

                     

© 小时科技 保留一切权利