大家好,又见面了,我是全栈君。
海盗的难题(Ian Stewart)
数学的逻辑有时会导致看来十分怪异的结论。
一般的规则是。假设逻辑
推理没有漏洞。 那么结论就必然站得住脚,即使它与你的直觉矛盾。
1998
年9月,加利福尼亚州帕洛阿 尔托的Stephen M. Omohundro寄给我一道难题,
它恰好就属于这一类。这难题已经流传 了至少十年,可是Omohundro对它作
了修改,使它的逻辑问题变得分外复杂了。
先来看看此难题原先的形状。
10名海盗抢得了窖藏的100块金子,并打算
瓜分这些战利 品。这是一些讲民主的海盗(当然是他们自己特有的民主),
他们的习惯是按以下的方式进行分配:最厉害的一名海盗提出分配方案,然
后全部的海盗(包含提出方案者本人)就此方案进行表决。假设50%或很多其它的
海盗赞同此方案,此方案就获得通过并据此分配战利品。否则提出方案的海
盗将被扔到海里,然后下提名最厉害的海盗又反复上述过程。
全部的海盗都乐于看到他们的一位同伙被扔进海里。只是,假设让他们
选择的话。他们还是宁可得一笔现金。
他们当然也不愿意自己被扔到海里。
全部的海盗都是有理性的,并且知道其它的海盗也是有理性的。此外。没有
两名海盗是同等厉害的——这些海盗依照全然由上到下的等级排好了座次,
而且每一个人都清楚自己和其它全部人的等级。这些金块不能再分,也不同意
几名海盗共同拥有金块。由于不论什么海盗都不相信他的同伙会遵守关于共享金块的
安排。这是一伙每人都仅仅为自己打算的海盗。
最凶的一名海盗应当提出什么样的分配方案才干使他获得最多的金子呢?
为方便起见。我们依照这些海盗的厉害程度来给他们编号。
最怯懦的海
盗为1号海盗,次怯懦的海盗为2号海盗,如此类推。
这样最厉害的海盗就应
当得到最大的编号,而方案的提出就将倒过来从上至下地进行。
分析全部这类策略游戏的奥妙就在于应当从结尾出发倒推回去。
游戏结
束时,你easy知道何种决策有利而何种决策不利。
确定了这一点后。你就可
以把它用到倒数第2次决策上,如此类推。假设从游戏的开头出发进行分析,
那是走不了多远的。
其原因在于,全部的战略决策都是要确定:“假设我这
样做,那么下一个人会如何做?” 因此在你下面海盗所做的决定对你来说是
重要的,而在你之前的海盗所做的决定并不重要,由于你反正对这些决定也
无能为力了。
记住了这一点。就能够知道我们的出发点应当是游戏进行到仅仅剩两名海
盗——即1号和2号——的时候。这时最厉害的海盗是2号,而他的最佳分配方
案是一目了然的:100块金子全归他一人全部,1号海盗什么也得不到。因为
他自己肯定为这个方法投赞成票,这样就占了总数的50%,因此方案获得通过。
如今加上3号海盗。
1号海盗知道,假设3号的方案被否决,那么最后将仅仅剩2
个海盗,而1号将肯定一无所获——此外,3号也明确1号了解这一形势。
因此,
仅仅要3号的分配方案,给1号一点甜头使他不至于空手而归,那么不论3号提出
什么样的分配方案,1号都将投赞成票。因此3号须要分出尽可能少的一点金子
来贿赂1号海盗,这样就有了以下的分配方案: 3号海盗分得99块金子。2号海
盗一无所获,1号海盗得1块金子。4号海盗的策略也差点儿相同。他须要有50%的支
持票。因此同3号一样也需再找一人做同党。他能够给同党的最低贿赂是1块金
子,而他能够用这块金子来收买2号海盗。
由于假设4号被否决而3号得以通过,
则2号将一文不名。因此。4号的分配方案应是:99块金子归自己,3号一块也
得不到,2号得1块金子,1号也是一块也得不到。5号海盗的策略稍有不同。他
须要收买另两名海盗。因此至少得用2块金子来贿赂,才干使自己的方案得到
採纳。他的分配方案应该是:98块金子归自己,1块金子给3号,1块金子给1号。
这一分析过程能够照着上述思路继续进行下去。每一个分配方案都是唯一确
定的,它能够使提出该方案的海盗获得尽可能多的金子。同一时候又保证该方案肯
定能通过。
照这一模式进行下去。10号海盗提出的方案将是96块金子归他全部,
其它编号为偶数的海盗各得1 块金子,而编号为奇数的海盗则什么也得不到。
这就攻克了10名海盗的分配难题。
======================================
Omohundro的贡献是他把这一问题扩大到有500名海盗的情形。即500名海
盗瓜分100块金子。显然,类似的规律依旧成立——至少是在一定范围内成立。
其实,前面所述的规律直到第200号海盗都成立。 200号海盗的方案将是:
从1到199号的全部奇数号的海盗都将一无所获。而从2到198号的全部偶数号
海盗将各得1块金子,剩下的1块金子归200号海盗自己全部。
乍看起来。这一论证方法到200号之后将不再适用了,由于201号拿不出更
多的金子来收买其它海盗。
可是即使分不到金子。201号至少还希望自己不会
被扔进海里,因此他能够这样分配:给1到199号的全部奇数号海盗每人1块金
子,自己一块也不要。202号海盗相同别无选择,仅仅能一块金子都不要了——
他必须把这100块金子所实用来收买100名海盗,并且这100名海盗还必须是那
些依照201号方案将一无所获的人。
因为这种海盗有101名。因此202号的方案将不再是唯一的——贿赂方案
有101种。203号海盗必须获得102张赞成票,但他显然没有足够的金子去收买
101名同伙。因此。不管提出什么样的分配方案。他都注定会被扔到海里去喂
鱼。只是。虽然203号命中注定死路一条,但并非说他在游戏进程中不起任
何作用。相反,204号如今知道,203号为了能保住性命,就必须避免由他自
己来提出分配方案这么一种局面。所以不管204号海盗提出什么样的方案。203
号都一定会投赞成票。这样204号海盗总算 男 拣到一条命:他能够得到他自
己的1票、203号的1票、以及另外100名收买的海盗的赞成票,刚好达到保命所
需的50%。获得金子的海盗,必属于依据202号方案肯定将一无所获的那101名
海盗之列。
205号海盗的命运又怎样呢?他可没有这样走运了。
他不能指望203号和
204号支持他的方案,由于假设他们投票反对205号方案,就能够幸灾乐祸地
看到205号被扔到海里去喂鱼,而他们自己的性命却仍然可以保全。这样,无
论205号海盗提出什么方案都必死无疑。
206号海盗也是如此——他肯定能够得到205号的支持,但这不足以救他
一命。类似地。207号海盗须要104张赞成票——除了他收买的100张赞成票以
及他自己的1张赞成票之外,他还需3张赞成票才干免于一死。
他能够获得205
号和206号的支持。但还差一张票却是不管怎样也弄不到了。因此207号海盗
的命运也是下海喂鱼。
208号又时来运转了。他须要104张赞成票,而205、206、207号都会支持
他。加上他自己一票及收买的100票,他得以过关保命。获得他贿赂的必属于
那些依据204号方案肯定将一无所获的人(候选人包含2到200号中全部偶数号
的海盗、以及201、203、204 号)。
如今能够看出一条新的、此后将一直有效的规律:那些方案能过关的海盗
(他们的分配方案全都是把金子用来收买100名同伙而自己一点都得不到)相
隔的距离越来越远。而在他们之间的海盗则不管提什么样的方案都会被扔进海
里——因此为了保命。他们必会投票支持比他们厉害的海盗提出的不论什么分配方
案。
得以避免葬身鱼腹的海盗包含201、202、204、208、216、232、264、
328、456号。即其号码等于200加2的某一方幂的海盗。
如今我们来看看哪些海盗是获得贿赂的幸运儿。分配贿赂的方法是不唯一
的,当中一种方法是让201号海盗把贿赂分给1到199号的全部奇数编号的海盗,
让202号分给2到200号的全部偶数编号的海盗,然后是让204号贿赂奇数编号的
海盗,208号贿赂偶数编号的海盗,如此类推,也就是轮流贿赂奇数编号和偶
数编号的海盗。
结论是:当500名海盗运用最优策略来瓜分金子时。头44名海盗必死无疑,
而456号海盗则给从1到199号中全部奇数编号的海盗每人分1块金子,问题就解
决了。因为这些海盗所实行的那种民主制度,他们的事情就搞成了最厉害的一
批海盗多半都是下海喂鱼,只是有时他们也会认为自己非常幸运——尽管分不到
抢来的金子,但总能够免于一死。
仅仅有最怯懦的200名海盗有可能分得一份脏
物,而他们之中又仅仅有一半的人能真正得到一块金子。的确是怯懦者继承財富。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116168.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...