海盗分黄金的故事,是老了点,但是还是很值得寻味的.
题目:有五个海盗,抢劫了一批黄金,共200两,五个海盗商议如何分配这笔不义之财。
于是决定,按顺序,五个海盗轮流提出一个分配方案,所提出的分配方案要得到半数
以上的海盗通过。比如说第一个海盗提出的分配方案没有得到半数以上的海盗通过,
那么就将这个海盗抛下海(海盗就是够狠),然后由第二个海盗继续提方案,如果也没
有得到半数以上的海盗通过,抛下去,换第三个海盗,依此类推。
问:第一个海盗提出何种方案,才能获得半数以上的海盗通过,同时自己分配的黄金最多?
分析:
倒推,从第海盗5开始(假设前面4个海盗都已经被抛下海了)。
理所当然配如下:
200
全体通过,没有异议。
再假设还剩下海盗4和海盗5,无论海盗4怎么分,海盗5都不会同意,因为海盗4下海了,那剩
下的都归海盗5所有,除非海盗4把钱全都给海盗5,海盗4为了保命,也只有这么做,所以分配如下:
0 200
再假设还剩下海盗3,海盗4,海盗5
如果海盗三给海盗四的黄金少的话,比如说是0,并且把200都给海盗五,估计海盗5才有可能发善心放了海盗3一把,否则按照刚才的反推海盗5是很希望自己得到200的.所以海盗3就不要奢望拉海盗5了,就拉海盗4的票就可以了,所以,只需要给海盗4一个金子就可以了,这样海盗四就可以得到一个,否则海盗3死了,海盗4就一个没有了,还不一定能活者.
剩海盗2,海盗3,海盗4,海盗5的时侯,海盗3肯定不同意,除非海盗3能分到比199还多,但海盗2分给海盗3超过199的话,那他就不能分给海盗4了,如果海盗4连1两也得不到的话,他肯定不会同意,海盗5在这里肯定不希望海盗2死,如果海盗2死了他1两也没有,所以海盗5肯定要分1两,海盗2至少要有1两,但为了保险要给海盗2多1两,如果只分1两,他可以不同意,因为海盗2死了,海盗3至少要分1两给他,所以是197:0:2:1
海盗1海盗2,海盗3,海盗4,海盗5的时侯,海盗2就如同上面海盗3的情况,可以不考虑。海盗3他不希望海盗1死,死了他1两也没有,所以要给他1两,海盗4在上面的时候已经稳得2两了,除非给他3两,否则有危险,但给他3两又不符合题意,因为要保证海盗1分配的黄金最多,现在海盗1包括自己在内已经有2票了,他只要在拉1票就行了,他会给海盗5,海盗5在上面只有1两,必须再给他1两,,如果只给他1两,他可以不同意,因为他已经稳得1两了,所以分配是:197:0:1:0:2
我喜欢总结东西,就直接总结各规律算了,免得大家每次都推论了。
这样。大家说的对,如果剩下4,5,那4肯定是什么都没有了,(除非他不想活了)所以我用xxx表示死掉,当然是假设的)xxx.xxx.xxx.0 .200。
如果还有3.4.5三人,就会是xxx.xxx.199.1 .0这样是3,4号都同意,除非4号不想要钱了。
还有2,3,4,5人时是:xxx.197.0 .2 .1 这样同意的2,4,5 因为4号又可以多要一个金币了,五号也可以的一个了。
所以一号必须这样分:197。0。1。0。2这样同意的是1,3,5 这样才最多。
所以数据出来了,马上统计规律:
xxx.xxx.xxx .0 .200
xxx.xxx.199.1 .0
xxx.197.0 .2 .1
197.0 .1 .0 .2
聪明的朋友们已经看出来了,就是瓜分你的下个分发者的最多受益者的钱,来拉拢分的最少钱的人!
等于没有说 :)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!