海盗分金问题全解

“五个海盗,100 枚金币,怎么分才能让自己活下来,还拿到最多的钱?”

作为最流行的博弈论题目之一,这道题存在多种规则:

  1. 投票门槛怎么定:过半就行,还是必须严格多数?
  2. 海盗的偏好顺序是什么:先保命,再要钱,最后是喜欢杀人,还是讨厌死人?

经典版:半数及以上通过

这是流传最广的版本,也是大家最熟悉的 98, 0, 1, 0, 1

规则

  • 只要赞成票达到 一半及以上,方案就通过
  • 海盗都绝顶理性
  • 偏好顺序是:
    1. 先活下来
    2. 再多拿金币
    3. 如果生死和金币都一样,更愿意看到别人死

倒着推

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\)。

当金币足够时,经典版的最优分配会呈现出这样的形状:

\[x_1 = G-(\lceil n/2\rceil-1) \]

而其余海盗中:

  • 第 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 枚金币。这就是经典版最核心的“人数增长规律”。

在海盗不太多时,首领收益按线性下降

由上式可见,首领最终能保住的金币数是:

\[G-(\lceil n/2\rceil-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。超过临界点后,首领能活下来的位置会变得越来越稀疏。这是因为:前面几轮海盗的死亡,会制造出一批“注定下一轮得不到好处的人”,这些人会变成后续首领的“免费票”或“廉价票”。

所以人数继续增大后,问题会从简单的交替结构,进入一种更深的“死亡堆积—免费票释放”的阶段。

posted @ 2026-04-09 17:46  Ofnoname  阅读(83)  评论(0)    收藏  举报