COMP5270 Week 3 总结:Balls in Bins(题解 + 知识点)
课程: COMP5270 - Randomness, Probability, and Algorithms
学期: S1 2026
来源: Week 3 Lecture Notes (Balls in Bins) + Tutorial 3 Solutions
主题: Collisions (Birthday Paradox), Coverage (Coupon Collector), Load Balancing, Power of Two Choices
Part 1: Tutorial 3 详细题解
这一周的 Tutorial 围绕一个核心模型:
把
个球随机均匀独立地投入 个箱子。然后问:会不会发生碰撞?多少箱子是空的?最满的箱子多满?要投多少球才能让每个箱子都至少有 1 个?
这套模型出现在 hashing、负载均衡、coupon collector、生日悖论、distributed systems 中。本周的工具箱:指示变量 + 期望线性性 + Markov / Chebyshev / Chernoff / Union Bound + MGF 技巧。
Tutorial 开头的难度/要求说明
Tutorial 3 开头把题目分成了几类:前几题检查你是否理解 balls-and-bins 和 coupon collector;中间几题更 technical;后面 Advanced 题比较重,尤其 Problem 9 的计算量很大。
| 题目 | Tutorial 原文难度/要求 | 复习时怎么安排 |
|---|---|---|
| Problem 1 | 读 lecture notes 或看 lecture 后用于检查理解 | 必做,掌握空箱期望和基本下界直觉 |
| Problem 2 | 读 lecture notes 或看 lecture 后用于检查理解 | 必做,coupon collector 的核心题 |
| Problem 3 | 读 lecture notes 或看 lecture 后用于检查理解 | 必做或至少读懂,理解“每个箱子至少 2 个球”的等待时间 |
| Problem 4 | more technical,但 good practice | 练 Chernoff + Union Bound 的标准组合 |
| Problem 5 | more technical,但 good practice | 练非均匀分布下碰撞概率的计算 |
| Problem 6 | 设计为 tutorial 中完成;可以提前看,但不要求自己独立解出 | 课前先看思路,课上重点跟住 power of two choices 的直觉 |
| Problem 7 | conceptually interesting,simple in hindsight 但不 obvious;当 puzzle 想,做不出也没关系,但要看 solution | 适合当思维题,重点是理解 |
| Problem 8 | lecture 思想的 real-world application;应该可以自己解决 | 必做,彩票题能帮助把概率模型放回真实场景 |
| Problem 9 | Advanced,quite involved,尤其数学计算很
heavy;标记为 |
有时间再做,至少读懂 Poissonization 的目的 |
| Problem 10 | Advanced,quite involved;但结果在理论计算机、机器学习、数学中很有用 | 建议认真读,MGF 控制最大值是很通用的技巧 |
Problem 1: 空箱期望与覆盖时间下界
Tutorial 难度/要求: 读 lecture notes 或看 lecture 后用于检查理解。重点是用 indicator 算空箱期望,并把“还有空箱”转成覆盖时间下界。
题目: 把
详细题解:
设
空箱总数
第一步:求
第
第二步:用期望线性性求
第三步:用
[详细推导完整版]
第四步:从空箱期望
核心思路:先让"空箱的期望数"降到
。对非负整数值随机变量 (空箱数),由 Markov 不等式: 。所以只要 ,全部覆盖就有正概率。
详细推导:
由第三步,空箱期望上界:
我们要它
两边取自然对数:
移项:
两边乘
所以:
注:为什么
? 因为 是主导项, 只是低阶线性项。当 时, ,所以 被 淹没。存在常数 使得 对足够大的 成立,因此 。
其中
知识点总结:
- 指示变量法:把"计数事件个数"的题目,分解成每个事件的概率之和。
- 期望线性性:
,不要求独立。 - 经典不等式:
对所有 成立,特别在 小时很紧。 - 极限:
,所以 时空箱期望 。 - Markov 一步:要让
,先做 (因为 当 取整数非负值时)。
Problem
2: 设 为投掷直到每个箱子至少有
1 个球所需的次数(即 Coupon Collector 时间)。
Tutorial 难度/要求: 读 lecture notes 或看 lecture
后用于检查理解。这是 coupon collector
的核心题,复习时要会把等待时间拆成多个 geometric 随机变量。 用 Chebyshev
不等式证明对任意
详细题解:
0. 为什么 Coupon Collector 可以分解为几何分布之和?
这是整个分析的核心洞察。把收集过程看作
- 阶段
( ):已经收集到 种不同邮票,正在等第 种新邮票。 的推导:在阶段 ,已有 个箱子被击中,还空着的箱子有 个。每次投球均匀落入 个箱子之一,落入"新箱子"(空箱子)的概率就是空箱子数量除以总箱子数:
- 每次投球是独立的 Bernoulli 试验,成功概率
。所以等待第 次新邮票所需的次数服从几何分布 。
具体例子(
| 阶段 |
已收集 | 还缺 | 空箱子数 | 期望等待 |
|
|---|---|---|---|---|---|
| 1 | 0 | 5 | 5 | 1 | |
| 2 | 1 | 4 | 4 | ||
| 3 | 2 | 3 | 3 | ||
| 4 | 3 | 2 | 2 | ||
| 5 | 4 | 1 | 1 | 5 |
关键观察: - 阶段 1:
这就是为什么 Coupon Collector 时间是
关键性质:
因为几何分布具有无记忆性(memoryless):当阶段
总时间:
这就是 Coupon Collector 的"标准分解"。
把
而且
第一步:期望。
(最后一步:当
第二步:方差。
几何分布
由独立性:
(用了 Basel 问题:
第三步:套 Chebyshev。
取
(因为
Chebyshev:
代入:
证毕。
第四步:结果解释。
这个结论告诉我们:Coupon Collector 时间
- 期望:
- 偏离期望超过
的概率只有 (当 时非平凡),当 很大时趋于 0
注意:这里用了
这个保守上界,所以推导要求 才能有 。虽然题目只要求 ,但对于 ,这个 bound 是 trivial 的( ,Chebyshev 给出 )。实际上 Coupon Collector 的尾巴衰减比这快得多——可以用更精细的方法(如 Chernoff bound 或鞅方法)证明:偏离 的概率是 甚至指数级。
为什么方差是
注意方差上界:
这个方差与期望的平方
这说明 Coupon Collector 时间虽然绝对波动有
知识点总结:
- 几何分布:
, , 。 - 独立和的方差:
(独立时)。 - 调和数估计:
。 - Basel 求和:
。 - Chebyshev:
,只要有二阶矩就能用。 - Coupon Collector 关键公式:
, 。
Problem 3: 让每个箱子至少有 2 个球
Tutorial 难度/要求: 读 lecture notes 或看 lecture 后用于检查理解。它是在 coupon collector 基础上加一层要求,重点是理解为什么时间尺度会继续增加。
题目: 设
详细题解:
下界:
上界: 关键是"两阶段策略"。详细来说:
- 阶段一:等到每个箱子至少有 1
个球。这本身就是一个标准 Coupon Collector,按定义需要
次投掷,期望 。 - 阶段二:在阶段一完成后,每个箱子都恰好有 1 个球(或更多)。现在我们"假装"阶段一没有发生过,只看每个箱子需要第二次被击中。这等价于:从当前状态(每个箱子至少 1 个球)重新开始,再做一次"每个箱子至少再被击中一次"的 Coupon Collector。
为什么阶段二也服从
因为投球过程是无记忆(memoryless)的。每个球独立均匀投入
所以阶段二所需的额外投掷次数,与阶段一独立同分布,期望也是
期望计算:
由期望线性性(或独立随机变量和的期望):
更严谨的说法:设
合起来:
知识点总结:
- 耦合 (Coupling) 思想:把复杂随机过程拆成已知过程的"叠加"。
- Memoryless:投球过程在任何时刻"忘掉"过去,新一轮的几何变量与历史独立。
- 泛化:让每个箱子至少有
个球需要 (高阶展开后,第一项主导,第二项是"内部" coupon collector)。 - 下界永远是 trivial 的"更难"包含:本题
是最直接的"做更严格的事 → 至少要做更多"。
Problem 4: Chernoff + Union Bound 证明负载集中
Tutorial 难度/要求: more technical,但 good practice。重点是先对单个箱子的负载用 Chernoff,再对所有箱子用 union bound。
题目: 把
- (a) 求
和 。 - (b) 说明仅用 Chebyshev 无法给出"所有箱子的负载都接近期望"的 high probability bound。
- (c) 用 Chernoff bound 改进。
- (d) 选合适的
,使得所有箱子的负载都在 区间内,概率 。
详细题解:
每个球独立以
(a) 期望和方差
(b) Chebyshev 不够
对单个箱子,Chebyshev 给:
对
这个数
原因:Chebyshev 只用了二阶矩。Bernoulli
之和的尾巴衰减是指数级的,但 Chebyshev 只能看到
(c) Chernoff bound
对
取
这就是指数级的尾衰减(
(d) Union bound + 取
对
要让这
取
知识点总结:
- 二项分布 = Bernoulli 之和:
,每个独立。 - 二项分布期望方差:
的均值 ,方差 。 - 乘性 Chernoff (双边):
, 。 - Chebyshev vs Chernoff:Chebyshev 给出
多项式衰减,Chernoff 给出 指数衰减。当要做 项 union bound 时,必须用 Chernoff 才能"吞掉"那个 。 - Union Bound
的代价:每多一个项,对失败概率"加一份",所以单项失败概率必须
才有用。
Problem 5: 非均匀分布下的碰撞
Tutorial 难度/要求: more technical,但 good practice。它训练你不要默认“均匀”,而是直接用概率向量计算碰撞概率。
题目: 设球落入箱子的概率不再均匀,而是按分布
- (a) 求 2 个球落入同一箱子的概率。
- (b) 求
个球的期望碰撞数。
详细题解:
(a) 两个球碰撞概率
记号说明:什么是
把平方拿掉根号就是
所以
碰撞概率推导:
设球 1 和球 2 独立按分布
两球碰撞 = 它们落入同一个箱子,不管哪个箱子。重要的是:各个箱子的碰撞事件是互斥的(两球不可能同时落入两个不同的箱子),所以概率直接相加:
特别:当
最小化:由 Cauchy-Schwarz(或 Lagrange),
(b)
定义指示变量:对每对球
总碰撞数
由期望线性性:
知识点总结:
范数与碰撞概率:碰撞概率的本质就是分布的 范数平方 = "自我内积"。 - 均匀最优:均匀分布使碰撞概率最小(约束
下, 最小)。 - 范数下界:
,由 Cauchy-Schwarz 。 - 指示变量"对":当题目问"成对发生事件的数量"时,定义
是标准做法。 - 应用:在 hashing 里,一个好的 hash function 应该让 key 的像分布近似均匀,以最小化碰撞。
Problem 6: Power of Two Choices 的直觉证明
Tutorial 难度/要求: 设计为 tutorial 中完成;可以提前看,但不要求自己独立解出。重点是理解多一个随机选择为什么能显著降低最大负载。
题目: 把
详细题解:
设
关键递推:
设
显然
(a)
很简单:每个负载
(b)
(c) 第
第
设当前
(这里
(d) 累加得递推
由
(e) 解递推
设
等等,让我们重写。
迭代:
要
所以最大负载
知识点总结:
- 关键直觉:选 2 个随机箱子取较空者
球更不容易跑到"已经很满"的箱子(因为要"两个都满"才会被迫加给一个满的)。 - 双随机选择平方效应:概率从
变成 ,造成指数级改进。 - 双指数递推:
,是双指数衰减。 - single choice 对比:单选择最大负载
;双选择 — 改进巨大。 - 应用:分布式 hash table、web 负载均衡器、IP 路由都用这个思想。
Problem 7: 空箱期望趋于
Tutorial 难度/要求: conceptually interesting,simple in hindsight 但不 obvious。可以把它当 puzzle 想,做不出没关系,但一定要看 solution。 ![[Pasted image 20260530225602.png]]
翻译:
详细题解:
(1) 期望空箱数公式
由 Problem 1 的线性期望计算(对每个箱子用指示变量,
推导:每个箱子被一个球"避开"的概率是
(2) 核心:证明
目标:
方法(来自官方题解):利用导数的定义。
第一步,把指数形式取对数(恒等变形):
所以只需要证明:
令
第二步,定义
这正是
第三步,求导:
因此:
回代:
证毕。
重点:这不仅仅是背公式——它展示了极限
如何通过取对数转化为 的形式,而这个形式正好是 在 处的导数。
(3) 代入得最终结果
直觉:把
与 Poisson 的联系:箱子里球数近似
与 Poisson 的联系:箱子里球数近似
知识点总结:
- 经典极限:
。 - Poissonization:
,所以箱子数近似为 Poisson。 - 三分定律:
球 箱时,空箱、单箱、多球箱各占约 。
Problem 8: 澳大利亚彩票
Tutorial 难度/要求: lecture 思想的 real-world application;应该可以自己解决。重点是把彩票问题抽象成 balls-and-bins / coupon collector 风格的概率模型。 ![[Pasted image 20260530225535.png]]
题目: 澳大利亚 X-lotto:从
- (a) 中奖概率
是多少? - (b) 单张票的期望收益(净盈亏)是多少?
- (c) 若怀疑彩票"动了手脚"——一半号码组合从不出现,需要观察多少张票才能发现?
详细题解:
(a) 中奖概率 — 详细推导
问题理解:澳大利亚 X-lotto 是从
计数:
从 45 个号码中选 6 个,"选"意味着顺序不重要(即
逐项展开计算:
分子:
分母:
概率:开奖结果是均匀随机的,你的票只有 1
种组合,总共有
约八百一十四万分之一。作为对比:被闪电击中的概率约
,中彩票比被雷劈还难 8 倍。
(b) 期望收益 — 详细推导
设随机变量:令
期望收入:
一张票的期望毛收入只有约 12.28 分。
期望净盈亏(减去票价 0.6 澳元):
每买一张票,平均亏约 48 分。
为什么要这么算?——期望的定义
期望 = 每个可能结果的值 × 该结果发生的概率,求和。
一张票只有两种可能结果:
| 结果 | 净赚(收入 |
概率 |
|---|---|---|
| 中奖 | ||
| 不中 |
按定义直接算净盈亏的期望:
中间
为什么期望有意义? 它就是
长期平均。假如你买
- 总收入:
- 总支出:
- 净亏损:
平均到每次:
100 张票为什么盈利率不变? 因为期望的线性性:
核心结论:期望线性性告诉你,「多买」不会改变单位亏损率。彩票的数学决定了买越多亏越多。
买 100 张不同的票(每张选不同号码组合):
100 张票的成本:
因为每张票号码不同,100 张票覆盖了 100 种不同的组合。如果开奖结果落在你覆盖的 100 种之一,你就中奖:
期望收入:
期望净盈亏:
关键洞察:
| 1 张票 | 100 张票 | |
|---|---|---|
| 成本 | $0.60 | $60.00 |
| 期望收入 | $ | $ |
| 期望净盈亏 | $ | $ |
| 盈利率 | 亏 |
亏 |
盈利率完全相同——买多少张都不会改变期望亏损比例。因为:
彩票公司的设计保证了:无论你买多少张,长期来看每 1 澳元投入只能收回约 20.5 分。这是彩票盈利的数学基础。
(c) 检测「一半结果消失」— 详细推导
场景:怀疑有一半的号码组合永远不会被摇出,但不知道是哪一半。
题目要求:作为
核心洞察:没看到碰撞 = 什么都没学到
假设你观察了
- 公平情形:开奖从
个结果中均匀抽取 - 作弊情形:开奖只从其中一半(未知哪一半)中均匀抽取
关键事实:在「没有碰撞」的条件下,两种情形下你观察到的序列具有完全相同的概率分布。
直觉:如果你只看到一堆互不相同的号码,你能推断出什么?你看到的只是「某个大小为
因此:要想区分两个假设,必须观察到至少一次碰撞。否则任何推断都是徒劳。
用生日悖论求需要的票数
令
由生日悖论(见 Theorem 15-16):在大小为
因此:
数值验证
即需要约几千张票才可能看到一次碰撞,从而获得区分公平/作弊的统计能力。
总结:题目要求用 big-Oh 作答,答案是
。背后的逻辑链:无碰撞 → 无法区分 → 必须等碰撞 → 生日悖论 → 。
知识点总结:
- 彩票总组合数:
。 - 期望收益:
,对买家几乎总是负的(这是彩票公司的设计)。净 奖 金 中 奖 率 票 价 - 生日悖论 vs
检测:测试均匀性的最敏感统计量之一就是"碰撞数",因为碰撞数对
极其敏感。 现象:在 大小的空间随机抽样,约 个样本后出现第一次碰撞。
Problem 9: Poissonization(高级)
Tutorial 难度/要求: Advanced,quite
involved,尤其数学计算很 heavy;tutorial 标记为
题目: 设球落入箱子的分布是
- (a) 证明
,并且 相互独立。 - (b) 把碰撞数
写成 的函数。 - (c) 求
。 - (d) 求
。 - (e) 用 Chebyshev + 多副本平均,推导检测分布偏离均匀需多少球。
详细题解:
(a) 独立 Poisson
关键事实:若
证明思路:
(因为
最后这个是独立 Poisson 联合密度。证毕。
这是 Poissonization 的"魔术"——把全局约束(
)拿掉后,箱子变得完全独立。
(b) 碰撞数
碰撞数 = 每个箱子内部"对"的数量之和:
(c) 期望
由独立性和
Poisson 有
(和 Problem 5(b) 结论一致,差一个
(d) 方差
由独立性:
对
具体计算后(用
实际严格结果(套 Poisson 的 falling factorial 公式):
(这里
(e) Chebyshev + 多副本 → 检测复杂度
要区分两个分布
如果
要 Chebyshev 把信号从噪声里区分出来,需要
总样本数:
知识点总结:
- Poissonization:分类多项式分布 + Poisson 总数 → 独立 Poisson。常用来"去耦合"。
- Poisson 矩公式:
; ;一般地 (factorial moment)。 - 碰撞数的方差:
,后一项在 大时主导。 阈值:检测分布是否均匀(差异 ),需要 样本。这是 distribution testing 的基本结果。- 多副本平均:把
个独立估计平均,方差除以 ,标准差除以 — 是经典的 amplification。
Problem 10: 高斯最大值的 MGF 证明
Tutorial 难度/要求: Advanced,quite involved;但这个结果在理论计算机、机器学习和数学里都很常用。重点是学习用 MGF 控制最大值的通用套路。
题目: 设
并推出
详细题解:
关键技巧(MGF 方法):
对任意
由于
由 Jensen 不等式(
关键:这里不需要独立性!因为我们对
每个
代入:
优化
代回:
证毕。
推论:
把
每个
知识点总结:
- MGF 技巧(softmax trick):
。当 大时, 。 - Jensen 不等式:
凹 。 - 高斯 MGF:
的 MGF 是 。 - 优化
:对 形式, ,最小值 。 - 关键观察:MGF 方法不需要独立性 — 取 max 上界用 sum,sum 的期望可以用 union (sub-additivity)。这是为什么它能处理相依变量。
阶: 个高斯变量的最大值阶数是 ,远小于 。这一阶在高维概率、统计学习里随处可见。
Part 2: 讲义知识点详解
引言:Balls in Bins 模型
你有
我们关心的三件事:
- 最大负载 (Maximum Load):最满的箱子里有多少球?
- 覆盖 (Coverage):投到多少球后,每个箱子至少有一个?
- 碰撞 (Collisions):有多少对不同的球落入同一个箱子?
最简单的策略:把
一、碰撞 (Collisions) — Birthday Paradox
1.1 核心问题
问:投
个球到 个箱子,至少有一次碰撞(即至少有两个球落入同一个箱子)的概率是多少?
1.2 Theorem 15(生日悖论)— 详细解析
经典描述:
在一个房间里有 23 个人,有约 50% 的概率至少两人同生日。
(注:这里
为什么叫"悖论"?
直觉上,一年有 365 天,需要很多人才能"撞"到同生日。但 23 个人就超过
50%——远小于大多数人猜测的数字。这不是逻辑矛盾,而是直觉和数学之间的冲突:我们习惯线性思维("要有
Balls in Bins 对应:
- 每个人 = 一个球,一年中的每天 = 一个箱子(共
或 ) - "至少两人同生日" = 至少两个球落入同一个箱子 = 至少一次碰撞
- 问题 = 需要
个人(球)才能使碰撞概率
如何算出 23?
无碰撞的概率:第 1 个人任意生日;第 2 个人避开第 1 人:
代入
| 10 | ||
| 20 | ||
| 22 | ||
| 23 | ||
| 30 | ||
| 40 | ||
| 60 |
从 20 人到 30 人,概率从 41% 跳到 71%——碰撞概率增长极为陡峭。
关键直觉:为什么是
不需要精确公式也能看出答案在
对
定理总结:
| 项目 | 内容 |
|---|---|
| 问题 | |
| 精确公式 | |
| 阈值 | |
| 当 |
|
| 渐近( |
1.3 Theorem 16:碰撞概率的精确公式
验证:
证明:补集事件是"
直觉:第一个球随便放,第二个球要避开第一个所在的箱子(
边界情况: - 若
1.4 阈值:
时碰撞概率为常数
问题:实验上看,
答案:
证明(Stirling 近似法 — 兔子从帽子里跳出来式的证明):
取
一通"按摩"(massaging):
代入
三个极限:
(较难,需要二阶展开)
合并得:
即:
特别地:当
1.5 直觉来源:期望碰撞数
上面的证明像变魔术,没给直觉。这里给一个更直观的推导。
第 1 步:两个球碰撞概率。
第一球落入第
更正式地,记
第 2 步:期望碰撞数
把总碰撞数拆成指示变量之和。
总碰撞数
有多少对?
每对碰撞的概率: 球
用期望的线性性求和(不需要球对之间独立!):
一句话总结:
是球对数量, 是每对碰撞的概率,线性性把它们乘起来。关键:即使球对之间有复杂的依赖关系,期望线性性照样成立。
第 3 步:阈值出现的位置。
当
要严格证:仅有期望不够;还要看方差,再套 Markov / Chebyshev。
1.6 引理 16.1:碰撞数 的方差
问题:指示变量
但惊人的事实:仍有简洁公式。
证明:算
按对
Case 1:两对相同(
Case 2:两对完全不相交(
Case 3:两对相交于一个元素(
共
验算总数:
合并:
代数化简(用
而
证毕。
奇迹:方差恰好就是"如果指示变量独立时该得到的"答案。这并非通用现象,是因为箱子均匀这个对称性,让交叉项神奇地抵消。
一般情形的补救方法: 1. 若
1.7 Theorem
17:用 Markov + Chebyshev 证明 阈值
结论:
下界部分(
上界部分(
设
由 Chebyshev:
(这里用了
所以
这种用
的方法被称为 second moment method。
1.8 碰撞问题的应用
- Hashing:
个 hash buckets,若有 个 key,必然有碰撞 — 这是 hash table 设计的核心约束。 - Distribution testing (statistics):通过观察"碰撞数"统计量,可以检测分布是否均匀。
- Lower bounds for other problems:很多下界证明都归约到生日悖论。
二、覆盖 (Coverage) — Coupon Collector
2.1 问题
投多少球,才能让
个箱子每个都至少有一个球?记此次数为 。
这就是经典的 coupon collector 问题:你在收集
显然
2.2 直觉:用空箱期望反推
关键计算:投了
每个箱子是空的概率:
由期望线性性:
也就是说,投了
重复论证:再投
要把空箱数降到
2.3 Theorem 18: 的精确期望
其中
事实 18.1(调和数估计):
其中
证明:
引入辅助变量
特别地:
显然
计算
球一直投到第一次击中新箱子停止 — 这正是参数为
代入 (23):
(最后一步换元
2.4 Theorem 19:方差上界
证明的关键观察(surprisingly):随机变量
直觉:一旦你已经击中
由独立性:
几何分布方差:
代入:
(最后用 Basel 求和
2.5 推论:high-probability bound
由 Chebyshev,对
所以以概率
2.6 补充:Coupon Collector 的详细直觉与对比
经典形式与 Balls in Bins 的等价:
经典形式:一个集邮者想要收集
种不同的邮票。每次购买,他随机获得一种(每种等概率)。问他平均要买多少次才能集齐全部 种?
等价表述:
Balls in Bins 形式:把
个球随机均匀投入 个箱子,问最少需要多少个球才能让每个箱子都至少有一个球?
两种表述完全等价:邮票种类 = 箱子,每次购买 = 投一个球,收集齐 = 每个箱子都有至少一个球。
| 阶段 |
已收集 | 还缺 | 空箱子数 | 期望等待 |
|
|---|---|---|---|---|---|
| 1 | 0 | 5 | 5 | 1 | |
| 2 | 1 | 4 | 4 | ||
| 3 | 2 | 3 | 3 | ||
| 4 | 3 | 2 | 2 | ||
| 5 | 4 | 1 | 1 | 5 |
关键观察:最后阶段
,只剩一种没收集,每次只有 概率命中,期望等 次!这就是 Coupon Collector 时间是 而不是 的来源——最后几种稀有邮票等得久。
三个问题的对比
| 问题 | 设定 | 典型结果 | 核心直觉 |
|---|---|---|---|
| Birthday Paradox(碰撞) | 在大小为 |
||
| Coupon Collector(覆盖) | 期望 |
最后几种"稀有"邮票要等很久, |
|
| Load Balancing(负载) | 最大负载 |
某些箱子会"运气爆棚"接多个球 |
记忆口诀:碰撞快(
),覆盖慢( ),负载居中( 量级)。
三、负载均衡 (Load Balancing)
3.1 问题
固定
其中
直觉先猜一下:每个箱子期望 1
个球。最大负载大概是多少? - 1?不可能——方差
3.2 朴素分析:Chebyshev
给出 — 太弱了
我们能多简单地分析?
每个
取
对
结论:
但这是 Chebyshev 能给的极限了。
仿真显示实际最大负载远小于
| 实际 |
||
|---|---|---|
差距巨大!Chebyshev 只用到二阶矩,尾衰减只有
教训:独立同分布 Bernoulli 之和(即 Binomial)用 Chernoff 或更精细的工具分析,Chebyshev 给出的界通常粗糙
量级,离真实值差得远。
3.3 Theorem 20:
真正的答案是一个令人惊讶的量级:
既不是
数值感受:
| 实际 |
||||
|---|---|---|---|---|
即使
达到万亿,最大负载也只有约 14!这就是 的"慢增长"魔力。
接下来证明上界
3.4
上界证明(核心:union bound + 巧妙的 选择)
3.4.0 为什么不能用 Problem 4 的 Chernoff 方案?
Problem 4 处理的是
但这里
因此需要换一套武器:二项系数不等式 + Union Bound + 巧妙的
核心思路:证明对于足够大的
3.4.1 第 1 步:估计 — 子集计数法
设共有
关键观察:若第
注意:这是必要条件,不是充要条件——
用 Union Bound(事件不一定独立,但 union bound 不需要独立性!):
对称性:对任意固定的
为什么这样算而不是「
」的精确概率? 因为 union bound over subsets 虽然是粗放缩,但后面搭配二项式系数不等式后会产生 的超指数衰减——结果反而比直接算 Binomial 尾更干净。
3.4.2 事实 20.1:二项系数不等式
Fact 20.1。对
:
证明草图:
下界:
但更简单的下界:
上界:用
学习价值:这个不等式是「阶乘化的二项系数 → 指数衰减」的桥梁。当
时, 比 小得多。
3.4.3 代入化简
用上界
关键结果:
注意
3.4.4 第 2 步:Union Bound 到所有箱子
这里
3.4.5 第 3 步:定义临界 —— 巧妙选择
令
直觉:这个
举个例子:设
3.4.6 第 4 步:用尾和公式求
的上界
工具:尾和公式
把求和从
第一部分:有
第二部分:对
核心放缩:因为
等一下,更干净的写法是先拆分:
令
现在用
另外,
合起来:
最终:
这太漂亮了:期望最大负载不超过
,而 的定义完全由「何时 降到 」决定。剩下的工作就是估计 的渐近阶。
3.4.7 第 5 步:估计
由定义,
两边取自然对数(
即:
设
来简化: 。
这个方程通解是
上界方向(
设
当
我们需要
下界方向(
由
类似论证可得
结论:
由 (29) 立即得到:
3.4.8 证明结构总结
Pr[单箱 ≥ ℓ] 子集计数 + 二项系数不等式 |
核心洞察:
这种「超指数」衰减是整条证明链的引擎。没有二项系数不等式,我们只会得到 (彻底没用)。正是 把 消掉后留下 ,再被 压下去。
3.5 下界证明(详细版)
上界告诉我们
下界比上界难——要证明「不能更好了」,必须展示一种情况,使得最大负载必然达到该阶。
(1) 核心思想:Poisson 近似 + 独立性
每个箱子的球数
这里
关键一步(不严格但直观正确):假设
(2) 用 Markov 型下界
技巧:
我们的策略:
令
(用
(3) 计算
单个 Poisson 取
由近似独立性:
(用了
所以:
进一步用
(4) 选择
我们需要
这正是
取
当
(5) 下界结果
回代:
结合上界
(6) 下界证明中的关键技巧
| 步骤 | 技巧 |
|---|---|
| Markov 不等式的「反向」应用(下界期望) | |
| 近似 |
Poissonization / Binomial→Poisson 极限 |
| Stirling 的弱形式 | |
| 选 |
需 |
注意:这个下界证明不是完全严格的(依赖于 Poisson 近似和独立性假设),但给出了正确阶。严格版本需要处理
的依赖关系——可以用 Poissonization(Problem 9)技术来严格化,但超出了基础课范围。
3.6 替代证明(高级):MGF 方法
这个证明看似 magical,但有几个非常有用的技巧值得吸收。
第 1 步:引入自由参数
第 2 步:由 Jensen 不等式(
第 3 步:用
第 4 步:
第 5 步:用二项分布 MGF 公式:
代入
用
第 6 步:优化
用平衡技巧(避免求导):
代入 (32):
证毕。这给出
四、两选择的力量 — Power of Two Choices
4.1 策略
每个球随机选 2 个箱子,然后放入两个中较空的那个(平局任意打破)。
这看起来微不足道 — 每球只是多看一眼。但效果惊人。
4.2 Theorem 21:最大负载指数级下降
对比:
| 策略 | 最大负载 | 大致量级( |
|---|---|---|
| 单选择(标准) | ||
| 双选择 |
表面看差别不大,但当
极大时双选择是指数级改进。
4.3 直觉:双指数衰减
设
- 一个球成为某箱第
个球,要求"它的两次随机选都打在已有 个球的箱子里"。 - 这个概率约
(平方了!)。
所以期望:
设
从
4.4 应用
- Hash table 设计:cuckoo hashing 的核心思想就是双选择。
- 任务调度:分布式系统里把任务分给"看起来更空"的两个服务器之一。
- Web 负载均衡:load balancer 选 2 个后端,把请求发给负载更小的那个 — 即 JSQ-2 (join-shortest-queue with 2 samples) 算法。
- 网络广播:路由器随机选两个邻居,转发到较空的那个。
核心要点速查表
| 问题 | 关键结果 | 主要工具 |
|---|---|---|
| 碰撞概率 | 精确计算 + Stirling 近似 | |
| 期望碰撞数 | 线性期望 | |
| 覆盖时间 | 调和级数 + 几何分布 | |
| 最大负载(单选择) | Chernoff + Union Bound / MGF | |
| 最大负载(两选择) | 双指数递推 | |
| 空箱期望 | 线性期望 + |
|
| 非均匀碰撞 | 范数分析 | |
| 高斯最大值 | MGF + Jensen |
关键不等式总结
| 不等式 | 形式 | 适用场景 |
|---|---|---|
| Markov | 非负随机变量,一阶矩 | |
| Chebyshev | 需要二阶矩 | |
| Chernoff(乘性,双边) | Bernoulli 和,指数尾 | |
| MGF 技巧 | 最大值期望上界 | |
| Union Bound | 多事件联合 | |
| 标准放缩 | 把 |
|
| Cauchy-Schwarz |
复习建议: 这一周的难点在于熟练掌握各种概率不等式的组合使用(尤其是 Chernoff + Union Bound),以及 MGF 方法的技巧性证明。建议重点理解: 1. 碰撞数
范数 的对应关系(Problem 5, 9) 2. Chebyshev 不够 → 用 Chernoff 的范式(Problem 4) 3. 双随机选择的双指数递推(Problem 6) 4. MGF + Jensen 处理最大值(Problem 10、讲义Theorem 20) 这些技巧在分布式系统、随机化算法、分布检测、高维统计里都极其常用。