5个海盗分100金币

  曾经看到这道面试题,虽然不曾参加这样的面试,但是总会被这样的题目吸引。以前看到这题时候不知什么意思,今天中午午休的时候重新想了,至少现在能根据自己的思路解出来,而用到的方法竟然是我只看了一课的博弈论所学到的东西。苦逼的程序猿什么时候才能放下书本......闲话不说,题目重复如下:

      五位绝顶聪明、勇敢、理智、果断干练的女海盗抢得100枚金币后,讨论如何进行公正分配。他们商定的分配原则是:

  (1)抽签确定各人的分配顺序号码(1,2,3,4,5);
  (2)由抽到1号签的女海盗提出分配方案,然后5人进行表决,如果方案得到超过半数的人同意,就按照他的方案进行分配,否则就将1号扔进大海喂鲨鱼
  (3)如果1号被扔进大海,则由2号提出分配方案,然后由剩余的4人进行表决,当且仅当
超过半数的人同意时,才会按照他的提案进行分配,否则也将被扔入大海;
  (4)依此类推。这里假设每一个女海盗都是绝顶聪明而理性,他们都能够进行严密的逻辑推理,并能很理智的判断自身的得失,即能够在保住性命的前提下得到最多的金币。
   同时还假设每一轮表决后的结果都能顺利得到执行,那么抽到1号的海盗应该提出怎样的分配方案才能使自己既不被扔进海里,又可以得到更多的金币呢?

    我的思路仅仅一张表格( X代表假设这个人被扔进海里 ):
    海盗 1    2    3    4    5
            X    X    X    0    100  (因为必须超过半人,所以4一定拿不到甚至可能被丢下海)
            X    X    99  1     0     (因为3如果死了,那么4一个拿不到,所以3分给4一个,以最小代价获得了4的支持的得到票数超过50%)
            X    97   0   2    1    (2号必须以最小代价获得两位支持,那么必须在3号能给出的条件略好,那么最好的方式给4,5号各加1个金币)
            97   0   1    0    2     (同理,1号必须在与2能给出的条件以最小代价获得两位的支持,那么最小呆家是在3的基础上给3,5号各加1这样支持率超过50%) 

转载于:https://www.cnblogs.com/hql1988/archive/2012/05/29/2524839.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值