# 生日悖论

# 🌟 问题设定

有 m 个人,每个人的生日是等概率地在 1 到 365 天之间。问:至少有两个人生日相同的概率是多少?

我们设:

  • n=365(即一年 365 天)

  • m 是房间里的人数

  • p (m,n):至少两人生日相同的概率


# 🧮 如何计算这个概率?

我们可以通过 ** 反向思考(补集法)** 来计算。

# 1. 计算 “没有人生日相同” 的概率(记为 q (m,n))

即,每个人的生日都不重复。

假设第一个人随便选生日(有 365 种选法), 第二个人必须选一个 不一样的(有 364 个选择), 第三个人有 363 个可选…… 直到第 m 个人,有 365−m+1 个选择。

所以:

q(m,365)=365365364365363365365m+1365=i=0m1(1i365)q(m, 365) = \frac{365}{365} \cdot \frac{364}{365} \cdot \frac{363}{365} \cdots \frac{365 - m + 1}{365} = \prod_{i=0}^{m-1} \left(1 - \frac{i}{365} \right)

# 2. 那么,“至少两人生日相同” 的概率就是:

p(m,365)=1q(m,365)p(m, 365) = 1 - q(m, 365)

# 3. 期望与方差的计算与证明

# Step 1:定义碰撞

一组球之间如果落在同一个桶中,就产生了一次 “碰撞”。

  • 两个球同桶 = 1 次碰撞

  • 三个球同桶 =(32)=3\binom{3}{2} = 3 次碰撞(每两个之间算一对)


# Step 2:使用指标变量法(Indicator Variable)

我们可以用期望线性性(linearity of expectation)来求:

E[C]=1i<jmPr[balliand balljin same bin]{E}[C] = \sum_{1 \leq i < j \leq m} \Pr[\text{ball } i \text{ and ball } j \text{ in same bin}]

球 i 和球 j 同桶的概率是:1/n

所以,总共有 (m2)\binom{m}{2} 对球,每对碰撞概率为 1n\frac{1}{n}​,于是:

{E}[C] = \binom{m}{2} \cdot \frac{1}{n} = \frac{m(m-1)}

# Step 3 : 证明方差


其中首先假设函数符合二项分布,其后假设其不符合二项分布并通过方差的定理来证明,最终得到结果与二项分布一致。

# 应用不等式解决碰撞问题的概率问题

切比雪夫不等式告诉我们:

如果你知道一个随机变量 X 的期望和方差,那么它离期望太远的概率一定不会太大。

形式上:

Pr[XE[X]k]Var[X]k2\Pr\left[ |X - \mathbb{E}[X]| \geq k \right] \leq \frac{\text{Var}[X]}{k^2}​

在这里,我们把 X=C(碰撞次数)


# 🔍 应用在碰撞问题上:

我们想知道:

碰撞次数 C 是否为 0?也就是说有没有发生 “至少一对” 碰撞?

记住:

Pr[C=0]=Pr[无碰撞]=1Pr\Pr[C = 0] = \Pr[\text{无碰撞}] = 1 - \Pr


# ✅ 用切比雪夫得出两个重要结论:


# 第一条:

m=Ω(n)m = \Omega(\sqrt{n}),则发生碰撞的概率 ≥ 50%

# 原因:

  • 当 m 达到n\sqrt{n}​级别时,期望E[C]\mathbb{E}[C] 约为常数(如 1)

  • 切比雪夫保证:

    Pr[C = 0] \leq \frac{\text{Var}[C]}{(\mathbb{E}[C])^2} \leq \frac{1}

  • 所以至少有一对碰撞的概率 ≥50%

这就解释了 “生日悖论”:23 个人就能撞生日

这里逐句解释一下,因为Pr[C=0]Pr[C=0] , 代入可得 C - E [C] 的绝对值为 k,k=E [C];
再将m=Ω(n)m = \Omega(\sqrt{n}) 代入,可以得到 1/2


# 第二条:

m=O(n)m = O(\sqrt{n}),则发生碰撞的概率 ≤ 50%

# 原因:

  • 当 m 很小,比如远小于n\sqrt{n}​

  • 则期望碰撞次数非常小,E[C]<1\mathbb{E}[C] < 1

  • 于是用 Markov 不等式也可以推:

    Pr[C1]E[C]<0.5Pr[C \geq 1] \leq \mathbb{E}[C] < 0.5

  • 即:发生碰撞的概率低于 50%

# Coupon Collector 问题(覆盖问题)


# 🎯 问题描述

nn 种不同的卡片(或者说 nn 个桶),每次等概率随机获得一个卡片。

问题:

  • 平均需要多少次才能收集到所有的卡片?

等价版本:

  • 把球扔进桶中,平均需要扔多少次,才能保证每个桶至少有一个球?

# 📈 答案总结

平均需要的次数:

[
E[M(n)]=nlnn+O(n)\mathbb{E}[M(n)] = n \ln n + O(n)
]

其中 lnn\ln n 是自然对数。


# 🧠 推导过程

# 1. 分阶段分析

把收集过程分成 nn 个阶段:

  • ii 阶段:已经收集了 i1i-1 个卡片,想要收集到第 ii 个新的卡片。

# 2. 单阶段期望时间

在第 ii 阶段:

  • 拿到新卡片的概率是:

[
n(i1)n\frac{n - (i-1)}{n}
]

  • 拿到一个新卡片需要的期望尝试次数是:

[
nn(i1)\frac{n}{n - (i-1)}
]


# 3. 总期望时间

所有阶段加起来:

[
E[M(n)]=i=1nnn(i1)\mathbb{E}[M(n)] = \sum_{i=1}^{n} \frac{n}{n - (i-1)}
= nk=1n1kn \sum_{k=1}^{n} \frac{1}{k}
]

其中:

  • k=1n1k\sum_{k=1}^{n} \frac{1}{k} 是调和数 HnH_n
  • 已知近似:

[
Hnlnn+γH_n \approx \ln n + \gamma
(γ0.5772是欧拉-马歇罗尼常数)\quad (\gamma \approx 0.5772 \text{ 是欧拉-马歇罗尼常数})
]

因此:

[
E[M(n)]=nlnn+O(n)\mathbb{E}[M(n)] = n \ln n + O(n)
]


# 📌 直观理解

  • 开始时新卡片容易拿到(因为啥都有)
  • 随着已拥有卡片变多,重复概率升高
  • 收集最后几张稀有卡片非常耗时间
  • 整体收集次数增长速度是 nlnnn \ln n 级别

# ✅ 小总结表

项目内容
平均收集次数nlnn+O(n)n \ln n + O(n)
趋势随着 nn 增大,收集时间慢慢增加
难点最后几张卡片最难收集

# 🛠️ 后续补充

  • 实际收集次数也可以用 Chebyshev 或 Chernoff Bound 分析其集中性。
  • 高概率保证实际收集次数不会比 nlnnn \ln n 超太多。
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

IRON 微信支付

微信支付

IRON 支付宝

支付宝

IRON 贝宝

贝宝