【题目】
有5个海盗,号码分别是1、2、3、4、5,某天抢到了100枚金币,他们决定按下列原则分赃:
(1)由1号提出分配方案,然后剩余的4人表决,当一半或以上的人同意时方案被通过,否则他将被扔入大海喂鲨鱼;
(2)1号死后,由2号提方案,剩余的3人表决,当一半或以上的人同意时方案通过,否则2号同样被扔入大海;
(3)依次类推。
问1号海盗提出怎样的分配方案才能使自己的利益最大化。
【问题背景】
这是某天在网上闲逛时偶尔看到的一个帖子“微软1千万每年的面试题”。初次看到没什么头绪,以为非常困难,后来无意在纸上画画,得出了两个结论。因为到目前为止,没看到过官方公布的正确答案,这里列出我的思路,与有兴趣的朋友一起讨论。
【答案】
我自己推理得出的结果是:97,0,1,2,0 或者 97,0,1,0,2。
【数值试验】
【程序穷举】
【推理过程】
题目的意思为:自己提出的方案,自己不参与表决,剩余的人一半或以上的人同意才能通过。
下面是我的推理过程,其中:未=未知=不一定,*表示没有这一项或者已经死了
=========================================================
方案提出人 分配方案 表决数 支持 方案能通过 人是否得活
--------------------------------------------------------------------------
第5人 *,*,*,*,100 0 ***** 是 是
第四个人给他的宝石至少101,他才会肯定支持第四个人的方案
---------------------------------------------------------------------------
第4人 *,*,*,0,100 1 ****未 未 未是
第四个人给了第5个人100颗,第5个人是否支持未知,
所以第三个人即使给第四个人0颗,第四个人也会支持,保命要紧
--------------------------------------------------------------------------
第3人 *,*,100,0,0 2 ***是否 是 是是是
第二个人分给第三个人至少101颗,第三人才会肯定支持
第二个人分给第四个人至少一颗,第四人才会肯定支持
第二个人分给第五个人至少一颗,第五人才会肯定支持
--------------------------------------------------------------------------
第2人 *,98,0,1,1 3 **否是是 是 是是是是
第一个人分给第二个人至少99颗,第二人才会肯定支持
第一个人分给第三个人至少一颗,第三人才会肯定支持
第一个人分给第四个人至少两颗,第四人才会肯定支持
第一个人分给第五个人至少两颗,第五人才会肯定支持
-------------------------------------------------------------------------
第1人 97,0,1,2,0 4 *否是是否 是 是是是是是
第1人 97,0,1,0,2 4 *否是否是 是 是是是是是
=========================================================
至此推理结束,最终的分配方案为:
97,0,1,2,0 或者 97,0,1,0,2
【扩展】
这个题目好像还有一种提法,说的是1号提出分配方案后,所有的人都参与投票,当且仅当一半以上的人同意才能通过,否则1号被喂鲨鱼。
这种提法与本文的提法不同,但是效果一致,因为自己的提法自己肯定是支持的。
如果6个人分,7个人分又会有什么结果呢?我没仔细想过。
【结论】
这题目从后往前推的过程很有意思,但是推理过程是否合理呢?
因为网上还有很多人说第一个人最多可以获得98颗宝石。
虽然一直坚持自己的观点,当然更希望得到正确答案。