c语言海盗分1000个金币,海盗分金币问题及代码实现

看到一个非常有趣的问题:

5个海盗A、B、C、D、E抢得100枚金币,他们按顺序依次提方案:首先由A提出分配方案,然后5人表决,超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推,假设这5人都非常聪明并且绝对的理性,严格遵守规则,并且足够残忍,在自己收益相同的情况下会选择杀更多人。最后他们的分配方案是怎样的?

我的推理过程:

这个问题如果顺着推,从5个人直接开始,会陷入“海盗都足够聪明,收益最大化、尽可能杀人”的逻辑泥潭,无法理清思路,但是如果逆推,就容易多了。

假设只剩2个海盗D、E:

D必死无疑,即使自己一块也不拿,E也投反对票投死他,因为E足够残忍,然后获得100金币。

分配方案:0-100

3个C、D、E:

D无论如何都要保证C不会被投死,否则只剩下两个的时候,自己也必死无疑,所以他可以接受一块金币也分不到。

分配方案:100-0-0

4个B、C、D、E:

C总是想要投死B的,投死他后自己就可以获得100金币。

D的话,他会想,如果投死B,那么自己得不到金币,如果自己获得1块,那就不投死B。

E会想,如果B死,那么自己只能得到0块,所以只要B分自己1块,就保住他。

分配方案:98-0-1-1

5个A、B、C、D、E:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值