Birthday Match


题目

你在一艘邮轮上旅行,谁都不认识。船上宣布了一场比赛:如果你能找到一位和你同一天生日的人,你们两人都能获得一顿惠灵顿牛排晚餐。

问题:你至少需要和多少人比较生日,才能让成功概率超过50%?

分析

首先,不要错误地将这个问题认为是另外一个也很出名的问题:有一群人,如果有至少两个人生日相同的概率差不多有50%,那么这群人至少要有几个?这个答案是23。计算方式(以及一些假设对本题也使用):

假定没有人生日在2月29日,这样我们只要考虑365个不同的生日。

我们要计算的是:在一群人中,至少两个人生日相同的概率几乎是50%时,这群人最少需要多少人。

假设有\(n\)个人,所有人的生日都均匀分布在365天。我们先计算所有人的生日都不同的概率\(P\)

\[ P = 1 \times \frac{364}{365} \times \frac{363}{365} \times \cdots \times \frac{365-n+1}{365}\]

\(P < 0.5\)时,至少有两个人生日相同的概率就超过50%。通过计算可以发现,当\(n=23\)时,\(P \approx 0.4927\),所以答案是23人。

我们的问题中,你的生日已经确定,你需要找到和你生日一样的人。不管你问多少人,他们生日和你不同的概率都是\(\frac{364}{365}\),你问了差不多253个人后,\((364/365)^{253} = 0.49952284596..\)。因此,相反的情况(出现相同生日)的概率就高过了50%。

思考

这道题目有Bayes公式的影子,但主解法其实是补事件概率。

如果用Bayes视角,可以这样看:

  • \(H\)表示“下一位乘客和你同生日”。
  • \(E_n\)表示“前\(n\)位乘客都和你不同生日”。

根据Bayes公式:

\[ P(H|E_n)=\frac{P(E_n|H)P(H)}{P(E_n)}\]

在独立且均匀的假设下,\(E_n\)\(H\)独立,所以\(P(H|E_n)=P(H)=\frac{1}{365}\)

这说明一件很重要的事:就算你已经连续问了很多人都没匹配,下一位命中的概率仍然是\(\frac{1}{365}\),不会“因为之前没中所以更该中”。

真正会随着提问人数上升而变化的,是“到目前为止至少命中一次”的累计概率:

\[ 1-\left(\frac{364}{365}\right)^n\]

这也是本题答案接近\(253\)人的核心原因。

Previous Next