海盗分硬币问题总结

传说,从前有五个海盗抢得了100枚金币.他们通过了一个如何确定选用谁的分配方案的安排.即:
1.
抽签决定各人的号码(12345);
2.
先由1号提出分配方案,然后5个人表决.当且仅当超过半数人同意时,方案才算被通过,否则他将

被扔入大海喂鲨鱼;
3.
1号死后,再由2号提方案,4个人表决,当且仅当超过半数同意时,方案才算通过,否则2号同

样将被扔入大海喂鲨鱼;
4.
往下依次类推……


根据上面的这个故事,现在提出如下的一个问题.即:

我们假定每个海盗都是很聪明的人,并且都能够很理智地判断自己的得失,从而做出最佳的选择,

那么第一个海盗应当提出怎样的分配方案才能够使自己不被扔入大海喂鲨鱼,而且收益还能达到最

大化呢?

Solution:
倒推,从后往前推,人数依次增加

对于4号来说:如果1-3号强盗都喂了鲨鱼,只剩4号和5号的话,5号一定投反对票让4号喂鲨鱼,以独吞全

部金币。所以,4号惟有支持3号才能保命。

对于3号来说:3号知道这一点,就会提(100,0,0)的分配

方案,对4号、5号一毛不拔而将全部金币归为已有,因为他知道4号一无所获但还是会投赞成票

,再加上自己一票,他的方案即可通过。
对于2号来说:2号推知到3号的方案,就会提出(98,0,1,1)的方案,即放弃3号,而给予4号和5号

各一枚金币。由于该方案对于4号和5号来说比在3号分配时更为有利,他们将支持他而不希

望他出局而由3号来分配。这样,2号将拿走98枚金币。
对于1号来说:2号的方案会被1号所洞悉,1号并将提出(97,0,1,2,0)或(97,0,1,0,2

)的方案,即放弃2号,而给3号一枚金币,同时给4号(或5号)2枚金币。由于1号的这一方

案对于3号和4号(或5号)来说,相比2号分配时更优,他们将投1号的赞成票,再加上1号自

己的票,1号的方案可获通过,97枚金币可轻松落入囊中。这无疑是1号能够获取最大收益的方

案了!

总结:我们对这种问题要从后向前推,因为我们需要知道后面的会根据什么样的情况做出什么样的决定的时候,我们才可以做出对自己最有利的决定(因为自己的决定使一定数量的海盗得到的比自己死去之后得到的要多),让后面的能支持自己。

你可能感兴趣的:(程序员面试)