海盗分金问题全解
“五个海盗,100 枚金币,怎么分才能让自己活下来,还拿到最多的钱?”
作为最流行的博弈论题目之一,这道题存在多种规则:
- 投票门槛怎么定:过半就行,还是必须严格多数?
- 海盗的偏好顺序是什么:先保命,再要钱,最后是喜欢杀人,还是讨厌死人?
经典版:半数及以上通过
这是流传最广的版本,也是大家最熟悉的 98, 0, 1, 0, 1。
规则
- 只要赞成票达到 一半及以上,方案就通过
- 海盗都绝顶理性
- 偏好顺序是:
- 先活下来
- 再多拿金币
- 如果生死和金币都一样,更愿意看到别人死
倒着推
1 人:只剩 E。E 独吞 100。
2 人:D、E。D 只要自己投赞成就够了,因为“半数及以上”意味着 2 人局里 1 票就过。 所以:D=100,E=0
3 人:C、D、E。如果 C 死了,下一轮是 D、E,而 D 会拿 100,E 拿 0。所以 C 只要给 E 1 枚,E 就会支持他。
所以 C=99,D=0,E=1
4 人:B、C、D、E。如果 B 死了,下一轮结果是:C=99,D=0,E=1。4 人局只要 2 票就能过,B 只需要自己再拉 1 票。谁最便宜?当然是 D,因为他下一轮只能拿 0。
所以:B=99,C=0,D=1,E=0
5 人:A、B、C、D、E。如果 A 死了,下一轮结果是:B=99,C=0,D=1,E=0。5 人局要 3 票。A 自己算 1 票,还需要 2 票。最便宜的是谁?C 和 E,因为他们下一轮都只能拿 0。所以 A 只要各给他们 1 枚
答案
A=98,B=0,C=1,D=0,E=1
严格多数版:必须超过半数
这个版本常常被忽略,但它会把答案从 98 改成 97。
规则
把“半数及以上通过”改成:
必须超过半数。
于是:
- 2 人局需要 2 票
- 4 人局需要 3 票
- 5 人局仍需要 3 票
倒着推
1 人:只剩 E。不变。
2 人:D、E。D 需要 2 票,但 E 一定反对,因为 D 一死,E 就独吞 100。所以 D 必死,无论提出什么方案。
3 人:C、D、E。如果 C 死了,会进入 2 人局,而 D 会死,E 独吞 100。所以 D 为了活命,会支持 C,哪怕 0 枚也行。
结果:C=100,D=0,E=0
4 人:B、C、D、E。如果 B 死了,下一轮是:C=100,D=0,E=0。4 人局需要 3 票。B 自己只有 1 票,还得再买 2 票。最便宜的是 D 和 E,各给 1 枚即可。
结果:B=98,C=0,D=1,E=1
5 人:A、B、C、D、E。如果 A 死了,下一轮是:B=98,C=0,D=1,E=1。A 需要再买 2 票。C 给 1 枚就够。而 D 或 E至少有一个人得给 2 枚才会改投
于是 A 的最优方案是:
答案
A=97,B=0,C=1,D=2,E=0 或
A=97,B=0,C=1,D=0,E=2
温和版:海盗不想多死人
前两个版本默认海盗有点“残忍”:
如果我活着、拿的钱也一样,那我宁可看你死。
但如果最后一条改成:
保命 > 金币 > 少死人
也就是:如果结果对我一样,我更愿意让人活着。这个改动非常致命。
在这个场景下,答案不唯一,且给其他所有人 0 个金币就是其中一种方案。提案者往往能独吞 100。
原因很简单:如果某个海盗在“我投反对”和“我投赞成”两种情况下:
- 都能活
- 都拿 0
那他就会因为“不想多死人”而投赞成。这意味着提案者可以用 0 成本买票。
答案
- 在“半数及以上”版本里,A 可以直接提:100, 0, 0, 0, 0
- 在“严格多数”版本里,除了 2 人局无解外,从 3 人开始,首提者也常常能靠“0 成本拉票”独吞
金币可无限切分版
如果金币不是整数,而是能分成任意小,比如 0.000001 枚,那收买成本会进一步下降。
以经典版(半数及以上通过)为例,A 原本需要买 C 和 E 两票,各给 1 枚。但如果能无限细分,A 其实只需要给他们“比下一轮多一点点”就够了。
设这个“一点点”为 ε,那么:A = 100 - 2ε,B = 0,C = ε,D = 0,E = ε。A 几乎可以拿走全部金币。
如果海盗人数不断增加
在经典版里:
- 有 \(n\) 个海盗
- 有 \(G\) 枚金币
- 规则是“半数及以上通过”
- 偏好顺序是“保命 > 金币 > 杀人”
规律和通解
首领不需要说服所有人,只需要说服刚好够用的人。而最便宜的票,永远来自那些在“下一轮”里本来只能拿到 0 的海盗。所以,最优测率:只买下一轮最惨的那几个人,而且每人只多给 1 枚。
把海盗按资历从高到低记作 \(1,2,3,\dots,n\)。
当金币足够时,经典版的最优分配会呈现出这样的形状:
而其余海盗中:
- 第 3 个拿 1 枚
- 第 5 个拿 1 枚
- 第 7 个拿 1 枚
- ……
其余人都是 0。例如
- 5 人:\(98,0,1,0,1\)
- 6 人:\(98,0,1,0,1,0\)
- 7 人:\(97,0,1,0,1,0,1\)
- 8 人:\(97,0,1,0,1,0,1,0\)
每增加 2 个海盗,首领就少拿 1 枚金币。这就是经典版最核心的“人数增长规律”。
在海盗不太多时,首领收益按线性下降
由上式可见,首领最终能保住的金币数是:
所以当 \(n\) 增加时,首领收益并不是乱跳的,而是很稳定地下降:下降速度大约是每 2 个海盗损失 1 枚金币。
如果金币固定为 100 枚,那么首领最多只能买出 100 张“1 枚金币的票”。
而经典版中,首领需要的额外票数是:\( \lceil n/2\rceil-1 \)。所以对 100 枚金币而言,只要 \(n\le 202\) 时,将一百个金币分给后面一百个人,虽然首领没有获得金币,但仍能活下来。
到 \(n=203\) 时,就需要 101 张票,第一次不够了。这时,首领无论如何都会死。这时题目的味道就变了:它不再只是“怎么贿选”,而变成了“金币不够时,谁必须先死”。
当海盗比金币还多得多
当海盗数超过 202,首领已经没法靠“每票 1 枚”直接过关。于是最老的海盗会开始死亡,直到局面重新变得可操作。
但是并非只要超过 202 人,首领就一定会死。例如,若海盗数量为 204 人时。我可以给用一百个金币买下 5,7…… 203 号的 100 票,而 2 号海盗即使不给金币也会支持我(否则他会陷入 203 人的必死局),加上自己就可以凑够 102 票了。
超过 202 之后,会出现一串非常特别的存活点:
- 204 人时,首领又能活
- 208 人时,首领又能活
- 216 人时,首领又能活
- 232 人时,首领又能活
- 264 人时,首领又能活
- 328 人时,首领又能活
你会发现间隔在翻倍:4,8,16,32。超过临界点后,首领能活下来的位置会变得越来越稀疏。这是因为:前面几轮海盗的死亡,会制造出一批“注定下一轮得不到好处的人”,这些人会变成后续首领的“免费票”或“廉价票”。
所以人数继续增大后,问题会从简单的交替结构,进入一种更深的“死亡堆积—免费票释放”的阶段。

浙公网安备 33010602011771号