海盗分金问题及思考

网上流传甚广,先来看看原题:

海盗分金


5个海盗抢得100枚金币后,讨论如何进行公正分配。他们商定的分配原则是:

  (1)抽签确定各人的分配顺序号码(1,2,3,4,5);

  (2)由抽到1号签的海盗提出分配方案,然后5人进行表决,如果方案得到超过半数的人同意,就按照他的方案进行分配,否则就将1号扔进大海喂鲨鱼;

  (3)如果1号被扔进大海,则由2号提出分配方案,然后由剩余的4人进行表决,当且仅当超过半数的人同意时,才会按照他的提案进行分配,否则也将被扔入大海;

  (4)依此类推。

  这里假设每一个海盗都是绝顶聪明而理性,他们都能够进行严密的逻辑推理,并能很理智的判断自身的得失,即能够在保住性命的前提下得到最多的金币。同时还假设每一轮表决后的结果都能顺利得到执行,那么抽到1号的海盗应该提出怎样的分配方案才能使自己既不被扔进海里,又可以得到更多的金币呢?

  此题公认的标准答案是:1号海盗分给3号1枚金币,4号或5号2枚金币,自己则独得97枚金币,即分配方案为(97,0,1,2,0)或(97,0,1,0,2)。现来看如下各人的理性分析:

  首先从5号海盗开始,因为他是最安全的,没有被扔下大海的风险,因此他的策略也最为简单,即最好前面的人全都死光光,那么他就可以独得这100枚金币了。

  接下来看4号,他的生存机会完全取决于前面还有人存活着,因为如果1号到3号的海盗全都喂了鲨鱼,那么在只剩4号与5号的情况下,不管4号提出怎样的分配方案,5号一定都会投反对票来让4号去喂鲨鱼,以独吞全部的金币。哪怕4号为了保命而讨好5号,提出(0,100)这样的方案让5号独占金币,但是5号还有可能觉得留着4号有危险,而投票反对以让其喂鲨鱼。因此理性的4号是不应该冒这样的风险,把存活的希望寄托在5号的随机选择上的,他惟有支持3号才能绝对保证自身的性命。

  再来看3号,他经过上述的逻辑推理之后,就会提出(100,0,0)这样的分配方案,因为他知道4号哪怕一无所获,也还是会无条件的支持他而投赞成票的,那么再加上自己的1票就可以使他稳获这100金币了。

  但是,2号也经过推理得知了3号的分配方案,那么他就会提出(98,0,1,1)的方案。因为这个方案相对于3号的分配方案,4号和5号至少可以获得1枚金币,理性的4号和5号自然会觉得此方案对他们来说更有利而支持2号,不希望2号出局而由3号来进行分配。这样,2号就可以屁颠屁颠的拿走98枚金币了。

  不幸的是,1号海盗更不是省油的灯,经过一番推理之后也洞悉了2号的分配方案。他将采取的策略是放弃2号,而给3号1枚金币,同时给4号或5号2枚金币,即提出(97,0,1,2,0)或(97,0,1,0,2)的分配方案。由于1号的分配方案对于3号与4号或5号来说,相比2号的方案可以获得更多的利益,那么他们将会投票支持1号,再加上1号自身的1票,97枚金币就可轻松落入1号的腰包了。

 

以上解法是从后往前解,但是为什么要这样上面并没有说清楚,下面是自己的一些思考和解法,直接从前面开始,当然本质肯定是差不多的:

 

前提:海盗的智商都非常高,是完全理性的,可以算到所有的可能性。


原则:1.保住性命 2.使自己分得的金币最大化


几点说明

1.将按分配顺序的5个海盗分别用数字1,2,3,4,5来指代。
2.“超过半数”的意思是:若海盗总数为奇数,则支持的人数须大于总数一半的最小整数(总数一半加1/2);若海盗总数为偶数,则支持的人数为总数一半加1。
3.在分金的时候如果因某人有不支持的可能而导致自己要被喂鱼则不冒险而否决该方案,等价于如果某人支持的概率为50%,则当作他不支持。


思考

a. 除了4,其余4个海盗无论谁分金币的时候都可以在保命的情况下让自己的金币数最大化,他们不会由别人来决定自己的存亡(否则若分金的海盗可能由别人来决定命运的话则不符合题意了,因为这样每一个海盗在其他海盗的利益驱动下都会被喂鱼,5除外,下文有解释)。而4不同,假设前面3个海盗都被喂鱼了,这时只剩下4和5,那么4被喂鱼的可能性是50%,根据说明第3点,他不会冒这个险。

b. 因为a中只剩4,5的情况下4很可能会被喂鱼,所以他要拼命让3活着,即当3分金的时候不管自己能得几个金币4一定支持,这样当3分的时候方案就是100,0,0,海盗3可以拿所有的金币(此时1,2已在鲨鱼腹中)。

c. 因为a,每个海盗在他上一个还带分金币的时候肯定是反对的(当然4除外),因为此时反对的人越多,该方案否决的可能性就越大,这样离自己分金的情况就越接近,所以相邻的海盗必反对当前分金的海盗,无论方案是怎样的。

d. 5是唯一一个100%不会被喂鱼的,他最差的结果就是得到0金币,所以在他自己分得0金币的时候,他必定是反对的,因为前面喂鱼的人越多,他得到更多金币的可能性就越大(但不要忘了他是得到0金币这个前提,如果他能得到哪怕只有1个金币那都不一定了)。

e. 因为b,除了3分金币的时候可以拿走所有的金币(而且是必然拿走),其他海盗(除掉4,5的特殊情况,这个其他就剩1和2了)都没有这种可能。因为如果可以,那么后面的人全部都只能得到0个金币,而如果后面的人反对,那他们至少也是0个金币,说不定还更多,根据说明第3点,1,2不会冒这个险(实际上因为c和d,至少分金者的下一个海盗和海盗5是100%反对的。

f. 考虑了以上5点,可以得出一个结论:当后面的海盗考虑要不要支持当前分金海盗的方案时,只需要比较该方案和当前分金海盗被喂鱼以后的方案自己所得的金币数就可以了,因为假设当前分金海盗被喂鱼了(那么只能说他比较愚蠢),下一个海盗的分金方案就是最终方案(除非他和他的上一任一样愚蠢)。



因为题目问的是海盗1的方案是什么,所以直接从1出发,从自己可能得到的金币最大值开始,逐步减少该最大值,以达到最优方案(即在该方案的基础上不会被喂鱼)。
现在假设我就是海盗1,为了方便,以下都用第一人称。
我要找到最优的方案,就是当我提出一个方案时,推理出剩下4个海盗反对该方案(也就是我要被喂鱼)时每个人所能得到的金币数,和他们支持该方案时每个人所能得到的金币数,然后将这两组数据作相应的对比,如果后一组数据中有2个以上大于前一组数据(表示有2个以上海盗支持我),那这个方案就能通过,然后我在所有这些方案的集合中找到我能得到最多金币的方案,就是我的最优方案了。


分析如下:
我不能拿掉所有金币,那就让我从99个金币开始吧,我先这样分:(1.1表示海盗1的方案1,2.2表示海盗2的方案2)
1.1    99,0,1,0,0
假设他们反对,看看他们各能得到几个金币:
2.1    100,0,0,0  不符合思考e,所以排除。
2.2    99,0,1,0    只有海盗4支持海盗2,因为海盗3和海盗5是必反对的(思考e),所以也排除。
2.3    98,0,1,1    海盗5可以拿1个金币,他会支持海盗2,这么说如果我被喂鱼了,有3人(海盗2,4,5)会得到比支持我更多的金币,那这个方案不行,也就是说99个金币的方案排除。

1.2    98,0,1,1,0
假设他们反对,结果其实就是2.3,这时候只有海盗3会得到支持我更多的金币,海盗4得到是一样多,但是万一他心情不好反对我呢(说明第3点),那我还是要做鲨鱼的午餐,这样不行,98个金币的方案排除。

1.3    97,0,1,2,0
假设他们反对,结果也是2.3,这时候有海盗3和海盗4支持我了,他们得到的金币数前后对比是海盗3(0,1),海盗4(1,2),这样包括我自己就有3人支持,该方案通过。

1.4    97,0,1,0,2
分析和1.3类似,也通过。

这样最佳方案就是(97,0,1,2,0)和(97,0,1,0,2)。

更少的方案当然可以通过,但不是最优的。


后记
其实题目这样出,就知道结果是确定的,没有人会被喂鱼,因为海盗的智商足够高,他们是完全理性的,可以考虑到所有100%的可能性,这也就是为什么谁都想做海盗1的原因。关键点就在于将当前方案和下一个方案比较,只要分别得出支持和反对当前方案的人数就可以解决问题。还有一个就是只把资源用在值得用的地方,不要用在没有决定性作用的地方,比如在1.3和1.4中,如果不给海盗4或海盗5单独2个金币,而是分别给1个,那结果就是不确定的,因为海盗4和海盗5都有可能支持或反对,不能获得他们的完全支持,结果可能会很惨。在选择方案的过程中每一步都很重要,每一步都是关键,如果算错了一步,结果都会不一样。

posted @ 2009-04-26 12:09  充尚匀消  阅读(744)  评论(0编辑  收藏  举报