微软面试题 海盗分金

问题背景:五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分:抽签决定自己的号码(1、2、3、4、5)。首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼依此类推
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?

 

逆推
 1号2号3号4号5号
1人    100
2人   0100
3人  10000
4人 98011
5人970120
 970102

 

推理如下:

只有1个人时:5号得100个。

还有2个人时:4号即使提出0 100的分法,5号也可不同意,把4号推下海。

还有3个人时:3号知道4号一定支持自己,提出100 0 0的分法。3和4号同意。

还有4个人时:2号知道3号一定不同意,因为杀了2号,3号可以得100,干脆不给3号了,提出98 0 1 1的分法,这样2号、4号和5号会同意。

那么5个人时:1号怎么分呢?2号肯定不会支持他,因为1死了,2号利益可以最大化,3号,在如果1号死了后1个也得不到,给1个就会支持,4号和5号地位一样只要拉拢一个就行了。

所以最后 97 0 1 2 0 【1号 3号 4号支持】

或者 97 0 1 0 2【1号 3号 5号支持】都行。

 

特点:除了2个人时有点儿特别,其他利益最大化的分法都是将下一个序号的人不分,因为分了也是白分,杀了你,人家利益就最大化了。

 

上面的分方法是说的分发必须要超过半数的人同意,如果是半数的人同意也行呢?

情况如下,方法相同:

 

 

逆推
 1号2号3号4号5号
1人    -
2人   1000
3人  9901
4人 99010
5人980101
      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值