最近看了李永乐老师的视频,讲如何 2 个或 3 个公平地分蛋糕,2 人其实很简单,一个人切 1 刀另一个选就完了,3 个人就会比较复杂,这题建议有娃的父母都掌握,因为国家现在开放三胎了,将来生日聚会用得上(狗头)。这个复杂的分法实际我早在 matrix67 大牛blog 就看过,不过也忘得差不多了,在此也回顾下。

split cake

假设

首先我们还是要明确一些假设,蛋糕是任意可分的,虽然可以是不同形状,还是假设是长条比较方便,各人认为每段蛋糕价值(效用)可以不同,比如 A 按面积平分成两份,B 认为左边有草莓所以更好(\(>\frac{1}{2}\)),对A两边都是 \(\frac{1}{2}\),俩人都不觉得吃亏(甚至 B 觉得自己占了便宜)。并且各人要诚实,真实表达自己想法。还有效用函数应该随着面积单调递增,谁会拒绝一份更大的蛋糕呢?每人都倾向于确定,比如不存在一个人故意切大小不均,去赌另一个人会选择自己认为小的那块,而将大块留给自己。

移动刀法

回到 3 人分蛋糕,这个分法叫移动刀法,由 A 拿刀从左到右平移(假设蛋糕是个长条可以一刀切成左右两段),3 人可以在达到自己满意的程度喊停,在这里切下去,剩下两人一人切一人选就可以。在第一刀时假设 A 拿刀,分别考察 AB 的情况,AC 情况类似,如果 A 已经满足了,那 A 应该喊停,否则,剩下的部分肯定对A小于\(\frac{2}{3}\),A 能拿多拿少还不一定,对于确定的\(\frac{1}{3}\),按前面的假设,A 会偏向于确定,因此 A 先满足就会先喊停。B 也是同理,看起来和谁拿刀没什么关系,最先满足自己\(\frac{1}{3}\)期望的先喊就可以了。

上面的分法看起来是公平的,但细究的话也有破绽,这种分法可能让人产生嫉妒,比如 A 先喊,然后 B 和 C 一人切一人选,这时对 BC 来说俩人是平分的,并且他们也不认为A的那块比他们的好(否则他们应该先喊),但 A 可能认为 C 的好,你看你让我满足\(\frac{1}{3}\)时就喊,但 C 的那块有草莓,我爱吃草莓,这块的价值对我有\(\frac{1}{2}\),凭什么 C 拿的(在我看来)比我多,这虽然公平,但会引起嫉妒。那有没有无嫉妒公平的分法呢?

三人无嫉妒公平的解

首先由 A 先将蛋糕按他的理解平分成三份,每份都是\(\frac{1}{3}\),假设 3 块蛋糕分别叫x,y,z,然后由 B 和 C 分别选,这里分 2 种情况:(1)如果 BC 选的不同,皆大欢喜,A 拿剩下的\(\frac{1}{3}\),没人觉得不公平,也没人嫉妒 (2)BC 选的相同,比如都选了z(也许是有草莓),BC 的一人(比如 B)这时将选的这块 z 切下一小块(带草莓这块切下来)叫 Δz,剩下的叫 z’,对 B 来说 Δz 应该是 \(3z-\frac{1}{2}\)(后面会有证明),问 C 还要不要,再分 2 种情况:(2-1)C 要了 z’,那 B 就从剩下前 2 块选 1 块,A 选剩下的一块,假设C选了 z‘,B选了y,A选了x,这时只有A满意了,但B可能不满意(可能x,y都\(≤\frac{1}{3}\)),C也未必满意(可能z’不满\(\frac{1}{3}\)但已经是最大的),这时由 B 来将 Δz 分成 3 份,按 CAB 的顺序依次选取,因为对 B 来说 \(x≤y≤z'+Δz\),那 \(Δz≥(1-3x)\),那么 B 拿到的 \(y+\frac{Δz}{3}≥x+\frac{1-3x}{3}≥\frac{1}{3}\),中间这部分是根据 x≤y和前面 Δz 直接替换得到的,对 C 也可以应用同样的证明,A 不用说更高兴了,所有人都满足了(2-2)C 觉得 z’ 小了,因此选了 y,这里规定如果发生这种情况,B 必须选自己切的这个 z’,可以把切 z 的行为理解为 B 的自损,如果 C 不接受这个损失,那必须由 B 来承担。然后由 C 来分 Δz,按 BAC 的顺序依次选取,这样大家又平衡了。

B如何来切Δz

假设 x≤y,当 B 需要切 z 时,他可能面临 z’ 和 y 较小者再 \(+\frac{Δz}{3}\) 的局面,但他要至少保证拿到\(z'+\frac{Δz}{3}≥\frac{1}{3}\),由 \(z'+Δz=z\) 可得 \(Δz≥\frac{3z-1}{2}\)。这里可以从反面验证这个结论,如果 B 不这么切,有可能导致 B 拿到的少,比如设 x=y=\(\frac{1}{8}\) ,则 z=\(\frac{3}{4}\),B 没有按照 \(Δz≥\frac{3z-1}{2}=\frac{5}{8}\) 去切,而是切了 \(Δz=\frac{1}{8}\),这时 C 如果选了 z’,那 B 无论拿 x 还是 y,即使拿全部的 Δz,得到的都是 \(\frac{1}{8}+\frac{1}{8}=\frac{1}{4}<\frac{1}{3}\),所以 B 需要按照一定规则切 Δz 才能不吃亏。实际为了做到不嫉妒,每人都应该按等号来取,这样才能保证别人不可能比自己多,于是大家最终都拿到「自己认为」的 \(\frac{1}{3}\)。