首页 欧洲联赛正文


本文经授权转载自「程序员小灰」





—————  第二天  —————




海盗分金币问题:

有5个海盗,取得了100枚金币,所以他们要协商一个办法来分配金币。协商办法如下:

1. 由5个海盗轮番提出分配方案。

2. 假如超越对折海盗(包艾博伊和宫括提出者)赞同该方案,则依照该方案分配。

3. 假如赞同该方案的人数(包含提出者)独特影院,漫画 | 算法难题:海盗怎样分金币?,斗极地图小于等于对折,则提出者要被扔到海里喂独特影院,漫画 | 算法难题:海盗怎样分金币?,斗极地图鱼,剩余的海盗持续协商分配。

4. 海盗们都是肯定理性的,以自己尽可能多取得金币为意图。但是在收益持平的情况下,会倾向把提出者扔到海里。

问:第一个海盗应该提出怎样的分配方案,才干确保自己既不被扔到海里,又能使独特影院,漫画 | 算法难题:海盗怎样分金币?,斗极地图自己利益最大化?

举一个栗子:

此刻第一个海盗来提议分配方案,他说:

我要100枚金币,你们其他人一个金币也没有!

明显,其他小伙伴共同对立,成果第一个提出者被扔到了海里。

接下来轮到第二个海盗提出分配方案,他说:

我只需1个金币,剩余3个小伙伴每人33个金币!

第三个海盗对立,剩余两个小伙伴赞同,赞同者超越了对折(4独特影院,漫画 | 算法难题:海盗怎样分金币?,斗极地图 : 1),所以依照这个办法履行了分大隋圣皇帝配。









————————————











怎样使用递归思想来简化问题呢?让我们来详细分析一下,后文把五个海盗简称为老一、老二、老三、老四、老五。

老一在提出分配方案的时分,无妨这样考虑:

假如我被扔到海里了,剩余4个海盗,此刻老二的最优分配方案是什么呢?

我只需在老二的分配方案上略微添加一点,就能赢得更多的支撑。

老二在宅男撸管提出分配方案的时分,也会这样考虑:

假如我被扔到海里了,剩余3个海盗,此刻老三的最优分配方案是什么呢?

我只需在老三的分配方案上略微添加一点,就能赢得更多的支撑。

老三在提出分配杀手蒙娜方案的时分,仍是会这样考虑:

假如我被扔到海里了,剩余2个海盗,此刻老四的最优分配方案是什么呢?

我只需在老四的分配方案上略微添加一点,秦江灏就能赢得更多的支撑。

整个递归进程,就像下图相同:

这个递归进程到什么时分截止呢?剩余两个人停止。

想想看奎木狼下凡变成了谁,当剩余两个人的时分,是什么景象?

此刻老四没有任何挑选!不管他怎样分配,哪怕把10少女不时彩方案软件0枚金币都给老五,老五依然能够对立,导致老四被扔到海里,金币全归老五一切。

由此,老三心想:老四没有最优决议计划,所以不管我提出什么要求,老四都必定会赞同,而老五必定不赞同。

因为只需超越对折赞同就能够履行分配,所以老三的最优战略如下:

接下来,老二暗自深思:假如没有我,老三能取得100枚金币金正贤下车,所以不管怎样不会赞同我。但我能够设法“拉拢”老四和老五,构成 3 : 1 的局势。

在老三的“淫威”下,他们原本一个金币都得不到。我给他们一人一枚金币,好过由老三来分配,所以他们肯定会赞同。

因而,老二独特影院,漫画 | 算法难题:海盗怎样分金币?,斗极地图的最优策独特影院,漫画 | 算法难题:海盗怎样分金币?,斗极地图略如下:

总算轮到老一了,老一心里揣摩:假如没有我,老二能取得98枚关之琳低胸装现身金币,我总不能分给他多于98枚,干脆抛弃他,只需剩余三人中拉拢到两人,构成 3 : 2 的局势即可。

要拉拢谁呢?以老二的战略,老三得不到金币,所以老三最好“服侍”。我给老三1枚,老三必定赞同。

至于老四和老五,原本能够得到1枚,所以我有必要比老二给的多,才干赢得支撑。但我又没必要一起拉拢他俩,要么给老四两枚金币,抛弃老五,要厚道写作业1么给老五两枚金币,马新欣是谁抛弃老四。

因而,老一的最优战略如下:




作者简介:程序员小灰,帝都工程师夏狮犬一枚,先后在京东、摩拜任职。


 热 文 推 荐&nb奥利卡的诗sp;

☞互联网隆冬下,为什么就你被裁了?

☞吃亏的程序员,是怎样拿到了9个月的年终奖?

☞独特影院,漫画 | 算法难题:海盗怎样分金币?,斗极地图程序员有话说 |吸允 程序猿在乘地铁的时分都在想什么?

☞边际核算精华问答 | 为什么需求边际核算?

☞疼爱!能为程序员男友做些什么吗?

☞以太坊晋级的拖油瓶,竟仅仅这几行代码

☞2019年人工智能职业又进入冬季了吗?

☞谁能真实“撬动”微信?| 畅言

print_r('点个美观吧!');
var_dump('点个美观吧!');
NSLog(@"不归之森点个美观吧!");
System.out.println("白纪亚点个美观吧!");
console.log("点个美观吧!");
print("点个美观吧!");
printf("点个美观吧!");
cout << "点个美观吧!" << endl;
Console.WriteLine("点个美观吧!");
fm荷西我喜爱你t.Println("邻家娇妻文秋点个美观吧!");
Response.Write("点个美观吧!");
alert("点个美观吧!")
echo "点个美观吧!"sukKi可儿

点击“阅览原文”,翻开 CSDN App 阅览更交心!


喜爱就点击“美观”吧


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。