今天我们来看一个面试中经常面试官经常问到的问题:海盗分金币,这个问题其实来源于经济学上:海盗分金。
该问题描述的是:说5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,投票要超过半数(面试中也可能是大于等于半数)同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推。那1号(分配者)如何分金币才能使自己不被丢入海中且获得最大的利益?
这其中蕴含了博弈的思想:1号要想获得最大的收益那么他就要揣测出其他海盗的分配方案,根据他们的分配方案来制定自己的方案,使自己获取最大收益。如果揣测错了他就入海了!
那么1号海盗如果分才能使自己获得最大收益呢?读者读到这里可以自己先思考一下,再看下面的解决方案。
在分之前这里有一个前提哈:这五个海盗不傻,不脑缺,不转牛角尖,非常理性懂得为自己争取最大利益!!!
在这里我们需要用到逆向的推理思维:从后往前推理各个海盗的分配方法,分以下几步找出我们的答案。
01 只有4、5号
假如这里只剩下4、5号海盗了,那么只要5号海盗不同意4号的分配方案4号就得被丢尽海里喂鱼,而5号就可获得全部金币。其分配情况如下:
02 只有3、4、5号
在上一步中我们可以看出如果只剩4、5号了,那么4号就面临了这两种情况:
- 一个金币都得不到。
- 可能被丢到海里喂鱼(命没了)。 所以当存在3、4、5号的时候,3号可以给出以下分配方案:
在这样分配方案中只要4号同意3号的分配方案,那么他就一定不会被丢到海里可以保住性命,3号给不给他钱都无所谓了,毕竟小命最重要。只要3、4号同意该方案那么人数就超过一半了,该方案就通过,5号同不同意都不重要了。
其中我在网上看有人说这种情况下得分配方案为3号99个金币,4号1个,5号0个。其中给4号分了1一个金币,我个人认为这种方案是不对的,并没有最大化3号的收益(因为我们需要使分配者的收益最大化);因为不给4号钱他也得同意的,不然当3号被丢到海里了,他也就面临了被丢到海里的风险。只要4号同意3号的方案他就一定不会被丢到海里,所以可以不用给4号钱。
03 只有2、3、4、5号
在第2步的设想中4号和5号都没有分到金币,所以当存在2、3、4、5号海盗的时候,2号在分金币时只需要拉拢4、5号给他们一人分一枚金币,这样的话就取得了一半以上的人同意该方案,方案通过。其分配结果如下:
04 有1、2、3、4、5号
当五个海盗都存在时,这时候需要1号来分金币了。在第3步的设想中我们可以知道3号一个金币都没有,所以1号可以给3号一枚金币拉拢3号同意。然后4号和5号在第3步设想中都能获取一枚金币,所以1号可以给4号或者5号2枚金币拉拢其中一人同意该方案;这样就有一半以上的人数同意该方案了。所以最终5个海盗所分得金币情况如下图所示:
或者:
今天的知识就分享到这里了,我们下期再见!
欢迎关注微信公众号:不二技术,持续更新更多有趣知识!