算法逻辑题-海盗分金币问题

有5个海盗,获得了100枚金币,他们约定一个分配方案.
商议方式:1.有5个海盗轮流提出分配方案
                2.如果超出半数海盗(包括提出者)同意该方案,则按照该方案分配
                3.如果同意该方案的人数(包括提出者)小于等于半数,则提出者要被扔到海里喂鱼,剩余海盗继续商议分配
                4.海盗们是绝对理性的,以自己尽可能获得金币为目的,但是在收益相等的情况下,会倾向把提出者扔到海里

那么第一个海盗提出怎样的分配方案,才能保证自己既不被扔到海里,又能使自己利益最大化?

海盗分金币是一个著名的博弈题目,结果是第一个海盗利益最大化的分配方案:
97枚,0枚,1枚,2枚,0枚  或者  97枚,0枚,1枚,0枚,2枚
分析此问题,需要我们借助递归的思想,把复杂问题一步步转化为简单问题.
5个海盗简称为老大、老二、老三、老四、老五
老大在提出分配方案的时候,思考:
如果我被扔到海里了,剩下4个海盗,此时老二的最优分配方案是什么?
我知道在老二的分配方案上稍微增加一点,就能赢得更多的支持.
同理,老二在提出方案的时候,也会思考:
我被扔到海里了,剩下3个海盗,老三的最优分配方案是什么?
我只要在老三的方案上加一点,就能赢得更多的支持.
老三在提出方案的时候,会思考老四的分配方案?

老四没有任何选择,无论他如何分配,哪怕把100枚都给老五,老五仍然可以反对,超过等于半数的情况下,老四被扔到海里,金币全归老五所有.
老三想:老四没有最优决策,无论我提出什么要求,老四都一定会同意,老五一定不同意.
老三最优策略:老大扔海里,老二扔海里,老三100枚,老四0枚,老五0枚
接下来老二想:如果没有我,老三能获得100枚金币,,原本在老三的分配下,老四,老五一个金币也灭有,我现在仁慈点,给他们一人一个,他们肯定同意.
老二最优策略:老大扔海里,老二98枚,老三0枚,老四1枚,老五1枚
轮到老大了,老大想:如果没有我,老二能得98枚金币,我不能多于98枚,就放弃他,只要剩下三人得两票,形成3:2的局面即可.
本来以老二的策略,老三得不到金币,我就给老三一枚,老三一定同意
老四,老五本来只得一枚金币,我给他俩任何一人两枚,就可以了.要么老四两枚,放弃老五,要么老五两枚,放弃老四.
所以老大的最优策略:
     老大97枚老二0枚老三1枚老四2枚老五0枚
或 老大97枚老二0枚老三1枚老四0没老五2枚

延伸一下:如果海盗数目增加到7人,原本老大顺延成老三,原本老二顺延成老四,结果老大是95枚.
参考:https://mp.weixin.qq.com/s/GR7k-kKhw-U8AnnpQLzGGA

发布了36 篇原创文章 · 获赞 16 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_28551705/article/details/97377330
今日推荐