老文章---"海盗分金"

(本帖改编自《科学美国人》杂志中IanStewart的《凶猛海盗的逻辑》)

  海盗,大家听说过吧。这是一帮亡命之徒,在海上抢人钱财,夺人性命,干的是刀头上舔血的营生。在我们的印象中,他们一般都瞎一只眼,用条黑布或者讲究点的用个黑皮眼罩把坏眼遮上。他们还有在地下埋宝的好习惯,而且总要画上一张藏宝图,以方便后人掘取。不过大家是否知道,他们是世界上最民主的团体。参加海盗的都是桀骜不驯的汉子,是不愿听人命令的,船上平时一切事都由投票解决。船长的唯一特权,是有自己的一套餐具——可是在他不用时,其他海盗是可以借来用的。船上的唯一惩罚,就是被丢到海里去喂鱼。

  现在船上有若干个海盗,要分抢来的若干枚金币。自然,这样的问题他们是由投票来解决的。投票的规则如下:先由最凶猛的海盗来提出分配方案,然后大家一人一票表决,如果有50%或以上的海盗同意这个方案,那么就以此方案分配,如果少于50%的海盗同意,那么这个提出方案的海盗就将被丢到海里去喂鱼,然后由剩下的海盗中最凶猛的那个海盗提出方案,依此类推。

  我们先要对海盗们作一些假设。

  1) 每个海盗的凶猛性都不同,而且所有海盗都知道别人的凶猛性,也就是说,每个海盗都知道自己和别人在这个提出方案的序列中的位置。另外,每个海盗的数学和逻辑都很好,而且很理智。最后,海盗间私底下的交易是不存在的,因为海盗除了自己谁都不相信。
  2) 一枚金币是不能被分割的,不可以你半枚我半枚。
  3) 每个海盗当然不愿意自己被丢到海里去喂鱼,这是最重要的。
  4) 每个海盗当然希望自己能得到尽可能多的金币。
  5) 每个海盗都是现实主义者,如果在一个方案中他得到了1枚金币,而下一个方案中,他有两种可能,一种得到许多金币,一种得不到金币,他会同意目前这个方案,而不会有侥幸心理。总而言之,他们相信二鸟在林,不如一鸟在手。
  6) 最后,每个海盗都很喜欢其他海盗被丢到海里去喂鱼。在不损害自己利益的前提下,他会尽可能投票让自己的同伴喂鱼。

  现在,如果有10个海盗要分100枚金币,将会怎样?

  要解决这类问题,我们总是从最后的情形向后推,这样我们就知道在最后这一步中什么是好的和坏的决定。然后运用这个知识,我们就可以得到最后第二步应该作怎样的决定,等等等等。要是直接就从开始入手解决问题,我们就很容易被这样的问题挡住去路:“要是我作这样的决定,下面一个海盗会怎么做?”

  以这个思路,先考虑只有2个海盗的情况(所有其他的海盗都已经被丢到海里去喂鱼了)。记他们为P1和P2,其中P2比较凶猛。P2的最佳方案当然是:他自己得100枚金币,P1得0枚。投票时他自己的一票就足够50%了。

  往前推一步。现在加一个更凶猛的海盗P3。P1知道——P3知道他知道——如果P3的方案被否决了,游戏就会只由P1和P2来继续,而P1就一枚金币也得不到。所以P3知道,只要给P1一点点甜头,P1就会同意他的方案(当然,如果不给P1一点甜头,反正什么也得不到,P1宁可投票让P3去喂鱼)。所以P3的最佳方案是:P1得1枚,P2什么也得不到,P3得99枚。

  P4的情况差不多。他只要得两票就可以了,给P2一枚金币就可以让他投票赞同这个方案,因为在接下来P3的方案中P2什么也得不到。P5也是相同的推理方法只不过他要说服他的两个同伴,于是他给每一个在P4方案中什么也得不到的P1和P3一枚金币,自己留下98枚。

  依此类推,P10的最佳方案是:他自己得96枚,给每一个在P9方案中什么也得不到的P2,P4,P6和P8一枚金币。

  下面是以上推理的一个表(Y表示同意,N表示反对):

   P1  P2
   0  100
   N  Y

   P1  P2 P3
   1  0  99
   Y  N  Y

   P1  P2  P3  P4
   0  1   0  99
   N  Y   N  Y

   P1 P2  P3  P4  P5
   1  0  1  0  98
   Y  N  Y  N  Y

   ……

   P1  P2  P3  P4  P5  P6  P7  P8  P9  P10
   0   1  0   1  0  1   0  1   0  96
   N   Y  N  Y  N  Y   N  Y  N   Y


  现在我们将海盗分金问题推广:

  1) 改变一下规则,投票中方案必须得到超过50%的票数(只得到50%票数的方案的提出者也会被丢到海里去喂鱼),那么如何解决10个海盗分100枚金币的问题?
  2) 不改变规则,如果让500个海盗分100枚金币,会发生什么?
  3) 如果每个海盗都有1枚金币的储蓄,他可以把这枚金币用在分配方案中,如果他被丢到海里去喂鱼,那么他的储蓄将被并在要分配的金币堆中,这时候又怎样?

  通过对规则的细小改变,海盗分金问题可以有许多变化,但是最有趣的大概是1)和2)(规则仍为50%票数即可)的情况,本帖只对这两种情况进行讨论。

  首先考虑1)。现在只有P1和P2的情形变得对P2其糟无比:1票是不够的,可是就算他把100枚金币都给P1,P1也照样会把他丢到海里去。可是P2很关键,因为如果P3进行分配方案的话,即使他一枚金币也不给P2,P2也会同意,这样一来P3就有P2这张铁票!P3的最佳方案就是:独吞100枚金币。

  P4要3张票,而P3是一定反对他的,而如果不给P2一点甜头,P2也会反对,因为P2可以在P3的方案中得救,目前为什么不把P4丢到海里呢?所以要分别给P1和P2一枚金币,这样P4就有包括他自己1票的3票。P4的方案为:P1,P2每人1枚金币,他自己98枚。

  P5的情况要复杂点,他也要3票。P4是会反对他的,所以不用给,给P3一枚金币就能使他支持自己的方案,因为在接下来的P4方案中他什么也得不到。问题是P1和P2:只要其中有一个支持就可以了。可是只给1枚金币是不行的,P4方案中他们一定有1枚金币可得,所以只要在他们中随便选一个,给2枚金币,另一个就对不起了,不给。这样P5的方案是:自己97枚,P3得1枚,P1或P2得2枚。

  P6的方案建立在P5的上面,只要给每个P5方案中不得益的海盗1枚金币。要注意的是,P1和P2都应该看作在P5方案中不得益的:他们可能得2枚,可是也可能1枚不得,所以只要P6给他们1枚金币,根据“二鸟在林,不如一鸟在手“的原则,就可以让他们支持P6的方案。所以P6的方案是唯一的:P1,P2,P4每人1枚金币,P6自己拿97枚。

  这样继续下去,P9的方案是:P3,P5,P7每人1枚金币,然后在P1,P2,P4,P6中任选一人给2枚金币,P9自己得95枚。最后,P10的方案是唯一的:P1,P2,P4,P6,P8每人1枚金币,P10自己得95枚。

  2)是最有趣的(提醒:我们回到50%票即可的规则)。原题解中的推理过程直到200个海盗都是成立的:P200给每个偶数号的海盗1枚金币,包括他自己,其他海盗什么也得不到。从P201开始,继续推理就变得有点困难了:P201为了不被丢到海里去,必须什么也不留给自己,而给从P1到P199中所有奇数号海盗每人1枚金币,从而争取到100票,加上他自己1票,逃过一劫。P202也什么都得不到,他必须用这100枚金币买通100个从P201的方案中什么也得不到的海盗,要注意到现在这个方案不是唯一的:P201的方案中得不到金币的海盗是所有奇数号的海盗,有101个(包括P201),所以有101种方案。

  P203必须得到102票,除了自己的1票外,他只有100枚金币,所以只能买到100票,所以可怜的家伙就被丢到海里喂鱼了。但是,P203是个很重要的角色,因为P204知道如果自己的方案不被通过,P203也一样会完蛋,所以他有P203的一张铁票。所以P204可以大出一口气:他自己一票,加上P203一票,然后加上用100枚金币买的确100票,他就得救了!100个有幸得到1枚金币的海盗,可以是P1到P202中任何100个:因为其中的偶数号的从P202的方案中什么也得不到,如果P204给他们中某个海盗1枚金币,这个海盗一定会赞同这个方案;而编号为奇数的海盗呢,只是有可能从P202的方案中得益罢了(可能性为100/101),所以根据“二鸟在林,不如一鸟在手“的原则,如果能得到1枚金币,他也会赞同这个方案。

  接下去P205是不能把希望放在P203和P204这两张票上的,因为就算他被丢到海里去,P203和P204还可以通过P204的方案机会活下来。P206虽然可以靠P205的铁票,加上自己1票和100枚金币搞到的100票,只有102票,所以他也被丢到海里喂鱼。P207好不了多少,他需要104票,而他自己以及P205和P206的铁票加上100枚金币搞到的100票只有103票——只好下海。

  P208运气比较好,他同样也要104票,可是P205,P206,P207都会投票赞成他的方案!加上他自己的1票和买来的100票,他终于逃脱了做鱼食的命运。

  这样我们就有了一种可以一直推下去的新逻辑。海盗可以什么也不留给自己,买上100票,然后依靠一部分一定会被丢下海的海盗的铁票,从而让自己的方案通过。有这样运气的海盗分别是P201,P202,P204,P208,P216,P232,P264,P328和P456……我们看到这样的号码是200加上一个2的次幂。

  哪些海盗是受益者呢,显然铁票是不用(不能)给金币的。所以只有上一个幸运号码及他以前的那些海盗才有可能得到1枚金币。于是我们得到500海盗分100枚金币的结论是:前44个最凶猛的海盗被丢进海里,然后P456给P1到P328中的100个海盗每人1枚金币。

  就这样,最凶猛的海盗被丢进海里,而比较凶猛的什么也得不到,而只有最温柔的那些海盗,才有可能得到1枚金币。正如《马太福音》所说:“温柔的人有福了,因为他们必承受地土!”

深入解析璞致PZ-ZU47DR RFSoC核心板:硬件架构与多通道ADC/DAC设计实战 本文深入解析璞致PZ-ZU47DR RFSoC核心板的硬件架构与多通道ADC/DAC设计实战。作为Xilinx Zynq UltraScale+ RFSoC系列的代表产品,PZ-ZU47DR集成了8通道5GSPS ADC和8通道9.85GSPS DAC,支持直接射频采样,大幅简化射频链路设计。文章详细介绍了其技术优势、设计挑战及实战技巧,为5G小基站、毫米波等应用场景提供高效解决方案。 阅读详情

相关推荐

拆解维修指南:当你的大扭矩电动扳手‘罢工’,如何自己动手排查行星齿轮与谐波传动故障?

本文详细解析了大扭矩电动扳手行星齿轮与谐波传动故障的排查与修复方法。从故障初判、拆解工艺到行星齿轮系统检测、谐波传动维护,提供了一套完整的维修指南,帮助用户快速诊断和解决常见问题,延长工具使用寿命。

weixin_42525582的博客 435

凶猛海盗的逻辑

海盗,大家听说过吧。这是一帮亡命之徒,在海上抢人钱财,夺人性命,干的是刀头上舔血的营生。在我们的印象中,他们一般都瞎一只眼,用条黑布或者讲究点的用个黑皮眼罩把坏眼遮上。他们还有在地下埋宝的好习惯,而且总要画上一张藏宝图,以方便后人掘取。不过大家是否知道,他们是世界上最民主的团体。参加海盗的都是桀骜不驯的汉子,是不愿听人命令的,船上平时一切事都由投票解决。船长的唯一特权,是有自己的一套餐具——可是在

Gosling的夹子 1975

VS Code/TRAE集成Cppcheck并启用MISRA规则

本文探讨了嵌入式开发中Cppcheck工具集成与MISRA规则检查的必要性。详细介绍了安装配置步骤:安装VSCode/TRAE、Cppcheck软件、配置插件参数、安装Python环境,并重点说明了MISRA规则文件的设置方法。通过完整的配置流程,实现了嵌入式开发环境下静态检查与安全标准的落地。

SDFangFang2025的博客 1282

聪明人的对策及纳什均衡

有一个激发学生智力的测试题目可能大家都知道。 老师拿了5顶帽子——3顶白帽子、2顶黑帽子——给3个聪明的学生看,然后让学生闭上眼睛,在每人头上戴上一顶白帽子,并将2顶黑帽子藏起来,每个学生只能看到另外两个学生头上的帽子,看不到自己头上的帽子。问学生们能否猜出自己头上帽子的颜色?据说,这个问题是华罗庚先生在爱因斯坦提出的问题的基础上经过改进后提出的,也称...

weixin_33860528的博客 204

大数据国赛第2套任务C-子任务一特征工程

根据**Hudi**的dwd_ds_hudi库中相关表或MySQL中shtd_store中相关表(order_detail、sku_info),计算出与用户id为6708的用户所购买相同商品种类最多的前10位用户(只考虑他俩购买过多少种相同的商品,不考虑相同的商品买了多少次),将10位用户id进行输出,若与多个用户购买的商品种类相同,则输出结果按照用户id升序排序,输出格式如下,将结果截图粘贴至客户端桌面【Release任务C提交结果.docx】中对应的任务序号下;

weixin_44117248的博客 901

跨模态行人重识别实战:Python复现SYSU-MM01官方评估协议

本文详细介绍了如何用Python复现SYSU-MM01数据集的官方评估协议,以解决原Matlab代码在Python生态中不便使用的问题。文章深入解析了数据集的`indoor`与`all`两种评估模式,并提供了完整的Python代码实现,包括特征加载、相似度计算、Rank-k与mAP指标计算等核心步骤,确保评估结果与官方Matlab版本完全一致,助力跨模态行人重识别研究。

weixin_29081163的博客 99

【数学】 海 盗 埋 宝

【海盗埋宝问题】\Huge\textsf{【海盗埋宝问题】}【海盗埋宝问题】 以下故事为虚构。 从前一个语文王子骑着超光速马从洛谷大厦偷走了114514枚滑稽币。他寻思要把它们藏哪。 有一天他在n星球的海边找到了巨佬Doom_Deterrence和大神风浪之子Mht的雕像,旁边还有一颗菜鸡A_Dark_Horcrux的头: 于是他灵机一动:以AC、BC为直角边分别向上作两个等腰直角三角形:...

A_Dark_Horcrux的博客 1万+

华为昇腾Ascend C中级认证考试-tanh

注册昇腾社区账号后可以免费领券考试。

2600_96284887的博客 468

IBM面试题:海盗分金算法及其思想

IBM面试题: 妈妈有2000元,要分给她的2个孩子。由哥哥先提出分钱的方式,如果弟弟同意,那么就这么分。但如果弟弟不同意,妈妈会没收1000元,由弟弟提出剩下 1000元的分钱方式,这时如果哥哥同意了,就分掉这剩下的1000元。但如果哥哥也不同意,妈妈会把剩下的1000元也拿走,然后分别只给他们每人100元。 问:如果你是哥哥,你会提出什么样的分钱方式,使你有可能得到最多的钱?(最小

聚精会神搞建设 5234

sysbench测试系统内存

系统内存读写测试方法,报告解读

m0_61066945的博客 3018

34 python 时间和日期

介绍python里时间和日期的常用方法,以及案例,还有注意事项。

水滴爬呀爬 347

海盗分金

海盗,大家听说过吧。这是一帮亡命之徒,在海上抢人钱财,夺人性 命,干的是刀头上舔血的营生。在我们的印象中,他们一般都瞎一只 眼,用条黑布或者讲究点的用个黑皮眼罩把坏眼遮上。他们还有在地 下埋宝的好习惯,而且总要画上一张藏宝图,以方便后人掘取。不过 大家是否知道,他们是世界上最民主的团体。参加海盗的都是桀骜不 驯的汉子,是不愿听人命令的,船上平时一切事都由投票解决。船长 的唯一特权,是有

chivalry 975

Oracle EBS 如何处理MMT表错误-WIP 实体未定义或不具有期间余额项

错误说明:WIP 实体未定义或不具有期间余额项。(The wip entity is either not defined or does not have a period balance entry)由于工单的创建日期为4月份,工单的余额表记录的期间是4月份,而3月份工单余额表中没有记录。公司将上一个新的库存组织,有一部分测试的工单创建日期在4月份,而工单的发放日期、发料事务处理日期和完工事务处理日期均在3月份。1、关闭3月份库存会计期,待定事务处理存在未计成本物料/WMS。成本类型: PAC成本。

陈显平的专栏-Oracle EBS 651

有趣的海盗分金问题(博弈论)

海盗分金问题 关于海盗分金问题是经济学上的一个经典模型:是说5个海盗抢得100金币,他们按照抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,投票要超过半数同意方案才能被通过,否则他将被扔入大海喂鲨鱼。该题同时也是一道著名的博弈题目,涉及到了博弈论的知识。那么什么是博弈论呢? 什么是博弈论 博弈论(Game Theory),是研究决策主体的行为发生直接相互作用时候的决策以及这种决策的均衡...

葡萄战车的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

海盗分金问题及思考

网上流传甚广,先来看看原题: 海盗分金 5个海盗抢得100枚金币后,讨论如何进行公正分配。他们商定的分配原则是:   (1)抽签确定各人的分配顺序号码(1,2,3,4,5);   (2)由抽到1号签的海盗提出分配方案,然后5人进行表决,如果方案得到超过半数的人同意,就按照他的方案进行分配,否则就将1号扔进大海喂鲨鱼;   (3)如果1号被扔进大海,则由2号提出分配方...

anpan7228的博客 629

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

海盗分金问题

1.海盗分金问题   2007-12-28 22:38:31|  分类: 灵机一动 |  标签:海盗分金  |举报|字号 订阅      下载LOFTER客户端 Q: 经济学上有个“海盗分金”模型,是说5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先

visayan的博客 688

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

海盗分金问题【极简】

问题 问题: 5个海盗抢得100枚金币,他们提出一个分配方案,5个人抽签, 按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人 表决,超过半数同意方案才被通过,否则他将被扔入大海喂鲨 鱼,依此类推。假定“每个海盗都是绝顶聪明且很理智,还喜欢杀人”,那 么第一个海盗提出怎样的分配方案才能够使自己的收益最大化? 审题 ????总的来说这是一个博弈问题,且存在纳什均衡(每人独立决策) 假定“每人海...

XiaoMie_y的博客 1281

海盗分金的故事

  传说,从前有五个海盗抢得了100枚金币,怎样来分这些金币呢?他们各说各的意见,海盗分金的故事五个人竟然提出了五种分配不同的分配方案.当然,每人所提的方案都是对自己有利的.因此,他们商量了好久也没定下来按谁提的方案来分配.最后,他们反而通过了一个如何确定选用谁的分配方案的安排.即:1.抽签决定各人的号码(1,2,3,4,5);2.先由1号提出分配方案,

世上无难事,只怕有心人 3146

海盗分金SQL优化杂谈

海盗分金 经济学上有个“海盗分金”模型,是说5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推。 假定“每人海盗都是绝顶聪明且很理智”,那么“第一个海盗提出怎样的分配方案才能够使自己的收益最大化?” 推理过程是这样的: 从后向前推,如果1至3号强盗都喂了鲨鱼,只剩4号和

lbyyy的专栏 1146

海盗分金币的问题,代码

故事:五个海盗抢到了100个金币,每一颗都一样的大小和价值连城。       他们决定这么分:       1.抽签决定自己的号码 ------ [1、2、3、4、5]      2.首先,由1号提出分配方案,然后大家5人进行表决,当且仅当不少于半数(包括半数)的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。      3.如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅...

lolicon10的博客 3351

5个海盗博弈(有的是10个海盗,N个海盗)

<br />先来看看此难题原先的形状。10名海盗抢得了窖藏的100块金子,并打算瓜分这些战利品。 这是一些讲民主的海盗(当然是他们自己特有的民主),他们的习惯是按下面的方式进行 分配:最厉害的一名海盗提出分配方案,然后所有的海盗(包括提出方案者本人)就此方 案进行表决。如果50%或更多的海盗赞同此方案,此方案就获得通过并据此分配战利品。否 则提出方案的海盗将被扔到海里,然后下一名最厉害的海盗又重复上述过程。 所有的海盗都乐于看到他们的一位同伙被扔进海里,不过,如果让他们选择的话,他们还 是宁

三江小渡的专栏 1155

海盗分金问题SQL求解(贪心算法)

问题经济学上有个“海盗分金”模型:是说5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推,假设海盗是足够聪明的先利己再伤人,最后方案是怎样的?网上百度来的的代码 with a as (select 101 - rownum n from dual connect by rownum ...

weixin_30951743的博客 396
上一篇: 一道简单题
下一篇: 孔子简史
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值