`

海盗分金

阅读更多

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

      现在船上有若干个海盗,要分抢来的若干枚金币。自然,这样的问题他们是由投票来解决的。投票的规则如下:先由最凶猛的海盗来提出分配方案,然后大家一 人一票表决,如果有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枚金币。正如《马太福音》所说:“温柔的人有福了,因为他们必承受地土!”

 

本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论
1 楼 ftp51423121 2009-09-24  
头像不错~~

相关推荐

    独子棋demo.rar

    独子棋demo.rar

    云安全联盟软件定义边界SDP标准规范2.0202239页.pdf

    云安全联盟软件定义边界SDP标准规范2.0202239页.pdf

    Uniapp开发的微商个人相册多端小程序源码

    Uniapp开发的微商个人相册多端小程序源码。使用 HBuilder X 导入本地项目,修改小程序AppID,以及Uni-app应用标识,调试发布即可。 小程序源码特点: 1、首页进行相册展示,采用分页 2、列表页面以文字形式进行分类,管理员可进行添加,修改和排序 3、每个列表下有多个相册,管理员可进行添加,修改和排序 4、每个相册有多张图片,有小图和大图模式进行切换 5、相册中可以长按图片进行选择删除和设为封面 6、相册可以进行分享 7、我的页面有管理员登录,联系客服等功能

    【FPGA硬件设计】基于FPGA的144通道可切换电压源系统设计:硬件架构与上位机软件实现(论文复现或解答,含详细代码及解释)

    内容概要:本文详细介绍了基于FPGA的144输出通道可切换电压源系统的设计与实现,涵盖系统总体架构、FPGA硬件设计、上位机软件设计以及系统集成方案。系统由上位机控制软件(PC端)、FPGA控制核心和高压输出模块(144通道)三部分组成。FPGA硬件设计部分详细描述了Verilog代码实现,包括PWM生成模块、UART通信模块和温度监控模块。硬件设计说明中提及了FPGA选型、PWM生成方式、通信接口、高压输出模块和保护电路的设计要点。上位机软件采用Python编写,实现了设备连接、命令发送、序列控制等功能,并提供了一个图形用户界面(GUI)用于方便的操作和配置。 适合人群:具备一定硬件设计和编程基础的电子工程师、FPGA开发者及科研人员。 使用场景及目标:①适用于需要精确控制多通道电压输出的实验环境或工业应用场景;②帮助用户理解和掌握FPGA在复杂控制系统中的应用,包括PWM控制、UART通信及多通道信号处理;③为研究人员提供一个可扩展的平台,用于测试和验证不同的电压源控制算法和策略。 阅读建议:由于涉及硬件和软件两方面的内容,建议读者先熟悉FPGA基础知识和Verilog语言,同时具备一定的Python编程经验。在阅读过程中,应结合硬件电路图和代码注释,逐步理解系统的各个组成部分及其相互关系。此外,实际动手搭建和调试该系统将有助于加深对整个设计的理解。

    上市公司-人工智能-词频总和明细.xlsx

    地级市政府通过制定相关政策来推动数字经济的发展和数字政府的建设。这些政策可能包括鼓励企业数字化转型、促进数字技术创新、加强数字基础设施建设、优化数字政务服务等方面的内容。政策制定的频率和力度,可以在一定程度上反映政府对数字领域的关注度。 在地级市政府数字关注度的背景下,词频分析成为了一种有效的工具,用以衡量政府文件和宣传资料中涉及数字技术和数字化转型相关词汇的频次,进而揭示政府对这一领域的关注程度和重视方向。 数据名称:地级市-政府数字关注度、词频

    Android平台上基于多尺度多角度模板匹配的图像识别技术及其在不同ARM架构的应用

    内容概要:本文详细探讨了在Android平台上进行图像模板匹配的技术挑战和解决方案,特别是在处理不同尺寸和旋转角度的目标物时的方法。文中介绍了使用OpenCV构建图像金字塔、处理旋转模板以及利用NEON指令集优化性能的具体实现。此外,文章还讨论了在armeabi-v7a和arm64-v8a这两种主要ARM架构下的优化技巧,如内存对齐、SIMD指令优化、RenderScript并行处理等。作者分享了许多实践经验,包括如何避免常见的性能瓶颈和兼容性问题。 适合人群:有一定Android开发经验,尤其是熟悉OpenCV和NDK编程的中级及以上开发者。 使用场景及目标:适用于需要在移动设备上进行高效图像识别的应用开发,如实时视频流中的物体检测、游戏内的道具识别等。目标是提高模板匹配的速度和准确性,同时确保在不同硬件配置下的稳定性和兼容性。 其他说明:文章提供了丰富的代码片段和实际案例,帮助读者更好地理解和应用所介绍的技术。特别强调了在不同ARM架构下的优化策略,为开发者提供了宝贵的参考资料。

    电力系统中基于改进粒子群算法的微电网多目标优化调度研究

    内容概要:本文探讨了一种改进的粒子群优化(PSO)算法在微电网多目标优化调度中的应用。传统PSO在解决此类复杂问题时常陷入局部最优解,而改进版通过引入动态惯性因子和自适应变异操作,显著提升了算法性能。文中详细介绍了这两种改进措施的具体实现方法及其对算法收敛性和解质量的影响。此外,还展示了该算法在实际微电网调度任务中的表现,特别是在权衡经济成本与环境效益方面的能力。 适合人群:从事电力系统优化、智能电网研究的专业人士以及对进化算法感兴趣的学者和技术人员。 使用场景及目标:适用于需要进行高效能源管理的场合,如分布式发电系统的规划与运行。主要目的是寻找既能降低成本又能减少环境污染的最佳调度方案。 其他说明:文中提供了大量伪代码片段帮助读者理解具体的技术细节,并强调了参数调节对于最终结果的重要性。同时指出,该方法不仅限于微电网领域,还可以扩展应用于其他类型的优化问题。

    Delphi 12.3控件之TeeChart Offline Keygen.7z

    Delphi 12.3控件之TeeChart Offline Keygen.7z

    MATLAB在光学领域屈光度计算中的数据处理与应用

    内容概要:本文详细介绍了如何利用MATLAB进行屈光度计算及其数据处理方法。首先解释了屈光度的基本概念和计算公式,接着展示了如何通过MATLAB代码读取、清理和转换焦距数据为屈光度,并进行了必要的单位转换。针对可能出现的异常值和噪声,文中提供了有效的数据清洗手段。此外,还探讨了如何对屈光度数据进行统计分析以及可视化呈现,如绘制趋势图和散点图等。最后,提到了将MATLAB代码转化为C++代码以便集成到硬件系统的高级应用。 适合人群:从事光学研究、眼科医疗设备开发的技术人员,以及对MATLAB有兴趣的学习者。 使用场景及目标:适用于需要精确处理和分析光学数据的研究机构或企业,旨在提高屈光度计算的效率和准确性,确保数据质量的同时优化实验结果。 其他说明:文中不仅涵盖了基本的操作步骤,还包括了许多实用的小贴士和技术细节,有助于读者更好地理解和掌握相关内容。同时强调了单位一致性的重要性,提醒开发者注意潜在的问题。

    349421c2-4955-4132-b4da-808a3a171bfe.pdf

    349421c2-4955-4132-b4da-808a3a171bfe.pdf

    1744300906657718_download.jsp

    1744300906657718_download.jsp

    【简历全景认知5】简历通关指南:揭秘企业筛选简历的三重门系统

    【内容概要】 本文详细解析了企业筛选简历的“三重门”系统,包括ATS系统初筛、HR复核和业务部门终极评估三个阶段。首先,ATS系统作为关键词匹配引擎,强调了关键词的重要性及其优化方法;其次,HR在6秒内通过“薄片判断”评估简历的职业连贯性、成就量化和岗位匹配度;最后,业务部门则侧重于技术能力和文化适配性的综合评估。文章还揭示了各环节中的心理学原理和认知偏差,并提供了针对性的优化建议。 【适合人群】 正在求职或有求职打算的职场人士,尤其是希望提升简历通过率的求职者。 【使用场景及目标】 ①帮助求职者理解企业筛选简历的具体流程; ②提供简历优化的具体方法,如关键词优化、成就量化、案例准备等; ③指导求职者如何根据不同阶段的评审特点调整简历内容。 【其他说明】 文章结合了最新的招聘趋势研究报告和心理学理论,强调简历不仅是通过筛选的工具,更是展示个人能力和价值的平台。求职者应充分利用这些心理规律,打造更具吸引力的简历,为后续面试做好铺垫。

    PFC2D5.0二维岩石单轴压缩模拟:颗粒流代码解析与能量裂隙分析

    内容概要:本文详细介绍了使用PFC2D5.0进行二维岩石单轴压缩模拟的具体方法和代码实现。首先,通过设定模型的基本参数如颗粒生成、粘结设置、加载控制等,构建了一个完整的岩石样品模型。接着,深入探讨了加载过程中应力应变曲线的变化规律以及能量分析的方法,包括弹性应变能、动能和耗散能的监测。此外,还提供了裂隙统计的技术手段,能够精确捕捉岩石内部裂隙的发展情况。最后,强调了参数调整对模拟效果的影响,并给出了优化建议。 适合人群:从事岩土工程、地质力学研究的专业人士和技术爱好者。 使用场景及目标:适用于需要深入了解岩石力学特性的研究人员,帮助他们掌握PFC2D软件的应用技巧,提升科研能力。同时,也为相关领域的学生提供了一套实用的学习资料。 其他说明:文中提供的代码可以直接应用于PFC2D5.0环境,便于用户快速上手并进行实验验证。通过对不同参数的调整,可以模拟多种类型的岩石破坏行为,为实际工程项目提供理论支持。

    Fluent激光焊接数值模拟:基于UDF的锥形高斯热源建模与优化

    内容概要:本文详细介绍了如何使用Fluent进行激光焊接的数值模拟,重点讲解了锥形高斯热源的建模方法。文章首先解释了锥形高斯热源的特点及其与普通高斯热源的区别,然后给出了具体的UDF代码实现,包括热源强度的计算、热流衰减的控制以及热源移动的实现。此外,还讨论了网格划分、材料参数设置、常见错误排查和优化技巧等方面的内容。通过实例和操作视频,帮助读者快速掌握激光焊接数值模拟的方法和技术要点。 适合人群:具有一定CFD基础并希望深入学习激光焊接数值模拟的研究人员和工程师。 使用场景及目标:适用于需要精确模拟激光焊接过程的研究项目或工业应用,旨在提高模拟精度,减少试验成本,优化焊接工艺参数。 其他说明:文中提供了大量实用的操作技巧和注意事项,如网格划分建议、材料参数选择、UDF代码调试等,有助于解决实际操作中可能遇到的问题。同时,附带的操作视频和GitHub上的完整案例包也为初学者提供了宝贵的学习资源。

    序列化.md

    序列化.md

    ResumePlatformFront 笔试面试全攻略与资源宝典

    "ResumePlatformFront 笔试面试全攻略与资源宝典"——一站式前端求职解决方案!精选高频笔试真题解析、大厂面试经验分享、实战项目模板及技能进阶指南,助你系统攻克前端求职难关。从简历优化到Offer谈判,覆盖求职全流程,配套免费资源库持续更新。无论应届生还是进阶开发者,这里都是你斩获心仪Offer的强力后盾!

    weixin205微信小程序线上教育商城ssm(文档+源码)_kaic

    weixin205微信小程序线上教育商城ssm(文档+源码)_kaic

    岩土工程中COMSOL实现岩石损伤热水力耦合模型及其应用

    内容概要:本文详细介绍了如何利用COMSOL软件构建岩石损伤与温度、渗流耦合的多物理场模型。首先解释了温度变化引起岩石膨胀/收缩以及渗流压力改变裂纹发展的物理机制,并通过PDE方程组进行描述。接着展示了具体的实现方法,如定义损伤变量、设置导热系数和渗透率随损伤变化的关系,以及引入温度修正的Mohr-Coulomb准则。文中还讨论了求解器配置技巧,强调了非线性收敛问题的解决方案。此外,作者分享了一些实际建模过程中遇到的问题及解决经验,如参数选择不当导致的模型发散等。 适合人群:从事岩土工程、地质工程及相关领域的研究人员和技术人员,特别是对多物理场耦合仿真感兴趣的学者。 使用场景及目标:适用于需要深入理解岩石在温度、渗流和应力共同作用下的损伤演化规律的研究项目。目标是帮助读者掌握COMSOL中多物理场耦合模型的建立方法,提高数值模拟的准确性。 其他说明:文章不仅提供了理论背景,还包括大量实用的代码片段和调试建议,有助于读者更好地理解和应用所学知识。

    2023-04-06-项目笔记 - 第四百六十四阶段 - 4.4.2.462全局变量的作用域-462 -2025.04-10

    2023-04-06-项目笔记-第四百六十四阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.462局变量的作用域_462- 2025-04-10

    电机控制领域中基于滑膜观测器的PMSM无传感器FOC控制Simulink仿真

    内容概要:本文详细介绍了基于滑膜观测器的永磁同步电机(PMSM)无传感器控制技术及其在MATLAB/Simulink中的仿真实现。首先阐述了PMSM的特点及其在现代工业中的重要地位,接着重点讲解了转子磁场定向矢量控制(FOC)的工作原理,特别是电流环的设计和电压解耦的作用。然后深入探讨了一阶滑膜观测器的实现方法,展示了如何通过电机的电压和电流信号估计转子位置和速度。最后,通过搭建完整的Simulink仿真模型并运行仿真,评估了控制策略的性能,并提供了配套的英文文献以供进一步研究。 适合人群:从事电机控制系统设计的研发工程师和技术爱好者,尤其是对无传感器控制技术和滑膜观测器感兴趣的读者。 使用场景及目标:适用于希望深入了解PMSM无传感器控制技术的工程师,旨在帮助他们掌握滑膜观测器的设计和实现,提高系统的可靠性和降低成本。同时,也为后续的实际应用和优化提供了理论依据和技术支持。 其他说明:文中提供的代码片段和仿真模型有助于读者更好地理解和实践相关技术,而配套的英文文献则为深入研究提供了宝贵的参考资料。

Global site tag (gtag.js) - Google Analytics