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%) 
posted @ 2012-05-29 22:54  HQL  阅读(1017)  评论(6编辑  收藏  举报