海盗分金币

 

海盗分金币

数学的逻辑有时会导致看来十分怪异的结论。一般的规则是,如果逻辑推理没有漏洞,那么结论就必定站得住脚,即使它与你的直觉矛盾。 1998年9月,加利福尼亚州帕洛阿尔托的Stephen M. Omohundro寄给我一道难题,它恰好就属于这一类。这难题已经流传了至少十年,但是Omohundro对它作了改动,使它的逻辑问题变得分外复杂了。
    先来看看此难题原先的形状。10名海盗抢得了窖藏的100块金子,并打算瓜分这些战利品。这是一些讲民主的海盗(当然是他们自己特有的民主),他们的习惯是按下面的方式进行分配:最厉害的一名海盗提出分配方案,然后所有的海盗(包括提出方案者本人)就此方案进行表决。如果50%或更多的海盗赞同此方案,此方案就获得通过并据此分配战利品。否则提出方案的海盗将被扔到海里,然后下提名最厉害的海盗又重复上述过程。
    所有的海盗都乐于看到他们的一位同伙被扔进海里,不过,如果让他们选择的话,他们还是宁可得一笔现金。他们当然也不愿意自己被扔到海里。所有的海盗都是有理性的,而且知道其他的海盗也是有理性的。此外,没有两名海盗是同等厉害的——这些海盗按照完全由上到下的等级排好了座次,并且每个人都清楚自己和其他所有人的等级。这些金块不能再分,也不允许几名海盗共有金块,因为任何海盗都不相信他的同伙会遵守关于共享金块的安排。这是一伙每人都只为自己打算的海盗。最凶的一名海盗应当提出什么样的分配方案才能使他获得最多的金子呢? 
    为方便起见,我们按照这些海盗的怯懦程度来给他们编号。最怯懦的海盗为1号海盗,次怯懦的海盗为2号海盗,如此类推。这样最厉害的海盗就应当得到最大的编号,而方案的提出就将倒过来从上至下地进行。 
    分析所有这类策略游戏的奥妙就在于应当从结尾出发倒推回去。游戏结束时,你容易知道何种决策有利而何种决策不利。确定了这一点后,你就可以把它用到倒数第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名海盗有可能分得一份脏物,而他们之中又只有一半的人能真正得到一块金子,的确是怯懦者继承财富。

 

时间: 2024-11-08 18:19:51

海盗分金币的相关文章

有16个硬币,A和B轮流拿,每次拿的个数只能是1,2,4之一,谁最后拿谁就输。问可以保证赢吗?

问题描述 看到这样一道推理题,我的解法如下(能保证我一定赢)首先:无论谁先拿,我得保证我最后一次拿的时候不能只剩下一个并且剩下的个数只能为(2,3,5)中的一个,不然的话我肯定会输.这样我只要保证在我最后一次拿之前被拿走的硬币数为(14,13,11)即可.这完全可以做到,因为14=1+2+4+1+2+4=1+2+4+1+2+2+211=1+2+4+4=1+2+4+2+213=1+2+4+2+4=1+2+4+4+1+1也就是说(14,11,13)既可以写成奇数个1,2,4相加的和,也可以写成偶数个

聪明人的对策及纳什均衡

有一个激发学生智力的测试题目可能大家都知道. 老师拿了5顶帽子--3顶白帽子.2顶黑帽子--给3个聪明的学生看,然后让学生闭上眼睛,在每人头上戴上一顶白帽子,并将2顶黑帽子藏起来,每个学生只能看到另外两个学生头上的帽子,看不到自己头上的帽子.问学生们能否猜出自己头上帽子的颜色?据说,这个问题是华罗庚先生在爱因斯坦提出的问题的基础上经过改进后提出的,也称为"华罗庚帽子问题".初一看问题似乎无解,每个学生看到另外两个学生戴的是白帽子,那么自己戴的可能是剩下的1个白帽子和2个黑帽子中的一个,

卡牌游戏源代码(原创)(控制台)

游戏预览: 完成度90%,约3000行,过年这几天全用在这上面了 由于尚未学到QT等,因此只能在黑窗口下面制作了 未完成的部分: ①战斗代码未优化(800行,精简后应该能降到200行左右) ②关卡掉落预留位置了,但是没有加入(加入掉落很简单) ③可以通过程序来手动添加关卡,但未加入这个功能. ④大概这样吧. 完成的部分: ①支持卡牌查询,卡牌仓库查询,装备仓库查询. ②通关,选择地图,然后从地图选择关卡.支持我方5人和地方6人的战斗模式,有简单的战斗描述(但没有动画),每回合更新一次战斗实况(可

poj 3211 Washing Clothes(0/1背包)

点击打开链接poj 3211 思路: 0/1背包 分析: 1 题目要求洗完n件衣服所需的最少的时间,并且必须洗完一种颜色才能跳到下一种 2 仔细想想这一题和uva上面的一道分金币非常的相似,由于要求必须洗完一种颜色才能跳到下一种,那么我们只要使得洗每一种颜色的时间最少那么总的就最少,那怎样才能够最少的时间呢?也就是要求两个人的时间差最小(也就相当于一个人用一半的时间去能够洗的最多的衣服),那么就转化为0/1背包的思想 3 做m次的dp然后求和即可 代码: #include<cstdio> #i

uva11130

分金币题意:圆桌上有n个人,每人有若干金币,金币总和能整除n,每个人可以分给他相邻两个人若干金币,现在需要使每个人最终金币数量相同,求需要转移的金币数量总和的最小值.类型:单变量极值->中位数问题 代码 #include <stdio.h> #include <iostream> using namespace std; const int maxn = 1000000 + 10; long long a[maxn], c[maxn], tot, m; int main(){

SEO综合元素分数计算:51分

作为SEO从业者,如果不知道一些搜索引擎的排名机制,想要获得好的排名也是有一定的困难,了解搜索引擎排名机制能更好的为我们工作,从而让我们更了解排名的机制算法.如以下图解.SEO元素周期表,是很早就公布出来了.本来想对这方面进一步的说明,但是因为工作的原因.迟迟没有写出来,今天特地花点时间,详细的介绍下,搜索引擎大概对一个网站是如何评分,希望对这方面不了解的站长能提供一点帮助! 计算:51分-"> Content:内容元素块 (12分) 1.质量分:提供有价值的内容,有意义.+3分. 2.关

了解外贸网站盈利模式 巧妙赚取外国人金币

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 很多互联网大佬说,要学习国外网站的模式,赚外国人的钱.但如果没有良好的英语能力,不了解国外用户的消费习惯,如何做呢? 8月25日周四A5版聊活动,邀请做外贸的站长猴子分享他每月30万销售额的B2C外贸仿品网站的经验,分享如何做外贸网站,如何赚美金的经验,为了便于大家阅读,以下整理完整的一问一答信息. 问:今天A5版聊活动分享外贸网站的话题,什

网页游戏分线到不分线

  这一年来可以明显看到一个变化:网页游戏分线从标配逐渐变成了可选,越来越多的游戏开始不分线:当初为什么要分线?现在为什么又不分线?技术上面临着什么挑战?仅仅是技术问题么? 术语解释     不同的技术实现"一条线"的概念也不尽相同,我们使用的Erlang实现,这里的一条线对应Erlang的一个VM. 为什么要分线?      可以通过比较来回答这个问题:所有玩家都在同一条线上 VS 同样数量的玩家被分配在多条线:如果所有玩家(假定1000人)都在一条线上首先同一场景的玩家数就会比较高

网易新闻客户端“金币”破解消费难题

文/Neo自从业内有了"移动互联网船票"概念后,除了被公认已经拿到一张豪华仓位VIP金票的微信外,各家均在剑拔弩张的争抢移动端入口,这其中最为热闹的当属移动新闻客户端领域.2013年,至少包括腾讯.搜狐.网易三家都已早早宣布用户过亿,起步较晚新浪新闻.后半年大热的今日头条也在逐步接近这个数字,可以预见,2014年新闻客户端大战仍将蔓延.不过,与IM.移动电商甚至接地气的O2O领域,内容类APP的盈利模式并不为 看好--尽管移动广告投放越来越被企业看重,但这种过于陈旧的广告模式一点也不够