系统设计之海盗分宝石问题

从前,在海上有5个海盗,一次他们抢到100颗价值连城的钻石,但如何分配这些钻石成了问题,5个人都很贪婪,且又都极为聪明,于是他们想一出个办法。办法是这样,通过抓阄的方式确定一个从1到5的先后顺序,然后由第1个人提出一个分配方案,如果这个方案获得半数以上的支持,那么就按这个海盗的方案执行,倘只是达到半数或低于半数,那么这个海盗将被扔到海里。接着再由第2个人提出新的分配方案,同第1个人一样,不能达到半数以上,这个海盗也会被扔到海里喂鱼。如此下去,直到有一个人的方案能够最终获得半数以上的支持。 现在问题出来了,如果你是第1个强盗,你提出一个什么样的分配方案,在保住小命的前提下还能获得最多的钻石?

 

海盗钻石方案:首先5个海盗都能投票。

利用倒推法:

假设1,2,3号海盗被扔入海里,4号海盗不想被5号海盗扔入海里4号海盗方案就是:4号:5号为0:100。5号绝对同意。

假设1,2号海盗被扔入了海里,3号海盗要获得一票支持再加上自己的一票就能通过,3号海盗只需给4号海盗比他方案多一颗就会获得4号海盗同意,所以3号海盗方案:3号:4号:5号为99:1:0。

假设1号海盗被扔入进了海里,2号海盗加上自己一票只需再获得两票就行了,只需根据3号海盗方案多给4号和5号一颗钻石,2号海盗方案:2号:3号:4号:5号为97:0:2:1。

所以1号海盗方案只需多给3,4,5号海盗一颗钻石他们就会同意。

1号海盗方案:1号:2号:3号:4号:5号为94:0:1:3:2。

转载于:https://www.cnblogs.com/jxr041100/p/8399196.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值