找坏球问题:n 次称量搞定 2ⁿ-1 个球
问题描述
已知正整数 $n \geq 3$,有 $2^n-1$ 个球,其中一个坏球,其余都是好球。好球重量都相等,坏球重量和好球不同。有一台电子秤,每次可以称量任意多的球,精确显示平均重量。
证明: 可以用 $n$ 次称量,找出坏球,并且知道坏球比好球轻还是重。
证明思路
将 $2^n-1$ 个球编号为 $1, 2, \ldots, 2^n-1$,用 $n$ 位二进制表示(从 $000\ldots1$ 到 $111\ldots1$)。
称量策略
第 $j$ 次称量 ($j=1,\ldots,n$):称量所有编号二进制第 $j$ 位为 1 的球。
为什么可行?
设好球重量为 $w$,坏球重量为 $w+\delta$($\delta \neq 0$)。
两种情况
- 若某次称量的集合中不含坏球 → 平均重量 = $w$
- 若包含坏球且有 $k$ 个球 → 平均重量 = $\frac{(k-1)w + (w+\delta)}{k} = w + \frac{\delta}{k}$
判断逻辑
- 定位坏球:从哪些称量的读数 ≠ $w$,即可重建坏球的二进制编号
- 判断轻重:若所有异常读数都 > $w$,则坏球偏重;若都 < $w$,则坏球偏轻(因为 $\delta/k$ 的符号始终相同)
唯一性保证
每个球有唯一的二进制编码,故其对应的”异常称量模式”也是唯一的。第 $j$ 个球是坏球当且仅当所有二进制第 $j$ 位为 1 的称量读数偏离 $w$。
结论
✅ $n$ 次称量足以找出坏球并判断其轻重
这个问题巧妙地将组合优化转化为二进制编码,体现了数学之美。