当前位置:网站首页>漫画:有趣的【海盗】问题
漫画:有趣的【海盗】问题
2022-07-05 16:50:00 【小灰】
————— 第二天 —————
海盗分金币问题:
有5个海盗,获得了100枚金币,于是他们要商量一个方法来分配金币。商议方式如下:
1. 由5个海盗轮流提出分配方案。
2. 如果超过半数海盗(包括提出者)同意该方案,则按照该方案分配。
3. 如果同意该方案的人数(包括提出者)小于等于半数,则提出者要被扔到海里喂鱼,剩下的海盗继续商议分配。
4. 海盗们都是绝对理性的,以自己尽可能多获得金币为目的。但是在收益相等的情况下,会倾向把提出者扔到海里。
问:第一个海盗应该提出怎样的分配方案,才能保证自己既不被扔到海里,又能使自己利益最大化?
举一个栗子:
此时第一个海盗来提议分配方案,他说:
我要100枚金币,你们其他人一个金币也没有!
显然,其他小伙伴一致反对,结果第一个提出者被扔到了海里。
接下来轮到第二个海盗提出分配方案,他说:
我只要1个金币,剩下3个小伙伴每人33个金币!
第三个海盗反对,剩下两个小伙伴同意,同意者超过了半数(4 : 1),于是按照这个方法执行了分配。
————————————
如何利用递归思想来简化问题呢?让我们来详细分析一下,后文把五个海盗简称为老一、老二、老三、老四、老五。
老一在提出分配方案的时候,不妨这样思考:
如果我被扔到海里了,剩下4个海盗,此时老二的最优分配方案是什么呢?
我只要在老二的分配方案上稍微增加一点,就能赢得更多的支持。
老二在提出分配方案的时候,也会这样思考:
如果我被扔到海里了,剩下3个海盗,此时老三的最优分配方案是什么呢?
我只要在老三的分配方案上稍微增加一点,就能赢得更多的支持。
老三在提出分配方案的时候,还是会这样思考:
如果我被扔到海里了,剩下2个海盗,此时老四的最优分配方案是什么呢?
我只要在老四的分配方案上稍微增加一点,就能赢得更多的支持。
整个递归过程,就像下图一样:
这个递归过程到什么时候截止呢?剩下两个人为止。
想想看,当剩下两个人的时候,是什么情形?
此时老四没有任何选择!无论他如何分配,哪怕把100枚金币都给老五,老五仍然可以反对,导致老四被扔到海里,金币全归老五所有。
由此,老三心想:老四没有最优决策,所以无论我提出什么要求,老四都一定会同意,而老五一定不同意。
由于只要超过半数同意就可以执行分配,所以老三的最优策略如下:
接下来,老二暗自寻思:如果没有我,老三能获得100枚金币,所以无论如何不会同意我。但我可以设法“笼络”老四和老五,形成 3 : 1 的局面。
在老三的“淫威”下,他们原本一个金币都得不到。我给他们一人一枚金币,好过由老三来分配,所以他们肯定会同意。
因此,老二的最优策略如下:
终于轮到老一了,老一心里琢磨:如果没有我,老二能获得98枚金币,我总不能分给他多于98枚,索性放弃他,只要剩下三人中笼络到两人,形成 3 : 2 的局面即可。
要笼络谁呢?以老二的策略,老三得不到金币,所以老三最好“伺候”。我给老三1枚,老三一定同意。
至于老四和老五,本来可以得到1枚,所以我必须比老二给的多,才能赢得支持。但我又没必要同时笼络他俩,要么给老四两枚金币,放弃老五,要么给老五两枚金币,放弃老四。
因此,老一的最优策略如下:
边栏推荐
- 深入理解Redis内存淘汰策略
- goto Statement
- Rider 设置选中单词侧边高亮,去除警告建议高亮
- 【7.7直播预告】《SaaS云原生应用典型架构》大咖讲师教你轻松构建云原生SaaS化应用,难题一一击破,更有华为周边好礼等你领!
- Mysql5.6 parsing JSON strings (supporting complex nested formats)
- Embedded -arm (bare board development) -1
- flask解决CORS ERR 问题
- Winedt common shortcut key modify shortcut key latex compile button
- Embedded-c language-6
- High number | summary of calculation methods of volume of rotating body, double integral calculation of volume of rotating body
猜你喜欢

Wsl2.0 installation

Embedded-c Language-2

The survey shows that the failure rate of traditional data security tools in the face of blackmail software attacks is as high as 60%
Example tutorial of SQL deduplication

干货!半监督预训练对话模型 SPACE

【jmeter】jmeter脚本高级写法:接口自动化脚本内全部为变量,参数(参数可jenkins配置),函数等实现完整业务流测试

WR | 西湖大学鞠峰组揭示微塑料污染对人工湿地菌群与脱氮功能的影响

Embedded-c Language-1

thinkphp3.2.3

Precision epidemic prevention has a "sharp weapon" | smart core helps digital sentinels escort the resumption of the city
随机推荐
Etcd build a highly available etcd cluster
国内首家 EMQ 加入亚马逊云科技「初创加速-全球合作伙伴网络计划」
张平安:加快云上数字创新,共建产业智慧生态
精准防疫有“利器”| 芯讯通助力数字哨兵护航复市
winedt常用快捷键 修改快捷键latex编译按钮
CMake教程Step1(基本起点)
How does the outer disk futures platform distinguish formal security?
Practical example of propeller easydl: automatic scratch recognition of industrial parts
How can C TCP set heartbeat packets to be elegant?
First day of learning C language
兰空图床苹果快捷指令
Example tutorial of SQL deduplication
The survey shows that the failure rate of traditional data security tools in the face of blackmail software attacks is as high as 60%
【beanshell】数据写入本地多种方法
CMake教程Step4(安装和测试)
【剑指 Offer】63. 股票的最大利润
Little knowledge about C language (array and string)
stirring! 2022 open atom global open source summit registration is hot!
【二叉树】根到叶路径上的不足节点
[Jianzhi offer] 66 Build product array