算法浅谈——递归算法与海盗分金问题

python知识点(六)自定义函数对应练习 自定义函数题目 火柴棒问题 阅读详情

本文始发于个人公众号:TechFlow


最近看到一道很有意思的问题,分享给大家。

还是老规矩,在我们聊算法问题之前,先来看一个故事。


传说中,有5个海盗组成了一支无敌的海盗舰队,他们在最后一次的寻宝当中找寻到了100枚价值连城的金币。于是,很自然的,这群海盗面临分赃的问题。为了防止海盗内讧,残忍的海盗们制定了一个奇怪的规则:


他们决定按照功劳大小对五个人进行编号,由编号小的海盗先提出分配方案。如果方案能够得到大多数人的同意,那么就按照他提出的方案进行分配。如果不能通过,说明他已经失去了威望,海盗们会残忍地将他投入海中喂鲨鱼。

在一个朦胧的早上你一觉醒来,突然发现自己成了一号海盗,那么你应该如何分配才能获得最多的金币,又不会被喂鲨鱼呢?


在我们思考之前,我们先完善一下题意,增加几个条件。


首先,每一个海盗都非常残忍。这意味着,在不影响收益的情况下,他们会更倾向于杀人。

其次,每一个海盗都极其聪明,都能想到最佳答案。


这两个条件一出来,问题就比较明显了,这是博弈论题目才有的架势。

既然这是一道博弈论的问题,那么我们通过常规的思路是无法找到答案的,我们需要另辟蹊径才行。


那么,怎么另辟蹊径呢?


一个比较常规的做法是先不考虑原问题,先假设一个和原问题差不多,但是规模小很多的子问题。通过对子问题的求解来摸索原问题的解法。


举个例子,在这题当中,我们需要计算5

有趣的编程(一)——海盗分金币问题如何编程求解 0. 写作目的 有趣的编程。 1. 问题描述 有n个海盗,分k个金币。 分配原则:依次从第一个人到最后一个人提出分配方法,只有当超过半数的人同意时,方案生效。如果该人提出的方案不能生效,则该人会被扔到水里喂鱼。游戏只能玩一次。问:第一个人如何提出分配方案才能最大化自己的利益? 假设:1) 所有的海盗都很聪明,而且理智;            2) 人性本恶(如当只有两个人时,无论第一个... 阅读详情

相关推荐

算法逻辑题-海盗分金币问题

有5个海盗,获得了100枚金币,他们约定一个分配方案. 商议方式:1.有5个海盗轮流提出分配方案 2.如果超出半数海盗(包括提出者)同意该方案,则按照该方案分配 3.如果同意该方案的人数(包括提出者)小于等于半数,则提出者要被扔到海里喂鱼,剩余海盗继续商议分配 4.海盗们是绝对理性的,以自己尽可能获得金...

qq_28551705的博客 1万+

经典海盗分金C++源码

经济学上有个“海盗分金”模型,是说5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推。“海盗分金”其实是一个高度简化和抽象的模型,体现了博弈的思想。在“海盗分金”模型中,任何“分配者”想让自己的方案获得通过的关键是事先考虑清楚“挑战者”的分配方案是什么,并用最小的代价获取最大收益,拉拢“挑战者”分配方案中最不得意的人们。 此源码用递归来是实现,即假如5个海盗,第5个人拉拢第4个人分配基础上上得金最少的5/2即2个人,每人原有基础上多得一个金,其余不在拉拢范围的人得0个金来保证自己得金最多,第4个则在第三个海盗基础上拉拢4/2=2个人,每人多得1金,其余不得, 这样依次类推写成程序里的递归算法。

海盗分金 python 源码

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

[Python]利用python实现复杂网络的博弈(0)——Introduction

什么是演化博弈? Evolutionary Gaming Theory(EGT), 演化博弈,或曰,进化博弈。顾名思义,演化博弈同传统博弈的不同之处就在于,其模仿了类似于生物进化的形式。在一个达尔文式的框架之下,参与博弈的节点通过给定的规则竞争,然后根据结果改变自身的策略。与传统的博弈论不同的是,这里,参加博弈的双方不再是被认为具有超级理性的个体,而是在不断的试错、评估中,动态的调整自己的策略 本次博弈,我们将会尝试构建(指直接调用别人写的库)一个复杂的随机网络,该网络具有两种不同的节点,他们会按照一定的概率选择“分享”与“不分享”两种策略。每个节点会与图中所有的其他节点博弈,计算其收益,并依

C#实现的海盗分金算法实例

主要介绍了C#实现的海盗分金算法,结合具体实例形式分析了海盗分金算法的原理与C#相应实现技巧,需要的朋友可以参考下

silvaco——GaN HEMT探索

上图为输出特性曲线 ,分别是在栅压为1v、3v、5v的情况下,可以看出在1v时器件处于截止状态,只有非常小近似于0的电流通过,随着栅压逐渐增大,沟道开启,产生漏极电流。上图为栅极漏电流曲线和转移特性曲线以及其提取的参数,可以看到阈值电压为=1.30249V,当栅压为0v时,Id=8.01032e-006,当栅压为5V时,Ig=3.11627e-006。albrct.n,低场迁移率模型,bn.albrct,an.albrct是albrct模型中的参数,可以由用户自己设定。lat.temp,晶格自热模型;

weixin_61913839的博客 7620

(2024,DDPM,DDIM,流匹配,SDE,ODE)扩散:基础教程

本文的目标是尽可能简单地教授扩散。第一节介绍扩散的基本原理。第二节和第三节展示如何构建随机和确定性扩散采样器。第四部分介绍了密切相关的流匹配,可看作是扩散的推广。​第五节,强调实践中最重要的一些设计选择,包括采样器、噪声时间表和参数化方法。

qq_44681809的博客 1万+

CentOS7安装openGauss5.0.2LTS版本

该文档要根据自己的实际情况调整ip地址。要根据自己的实际网卡调整。

superhanyubo的专栏 2581

RT-DETR 跨模态检测改进:融合红外数据提升 R50 夜间检测效果

本文提出跨模态自适应融合RT-DETR(CMF-RTDETR-R50),通过双分支骨干网络、可变形模态对齐和门控注意力融合三大模块,将红外数据融入RT-DETR-R50检测器,显著提升夜间目标检测性能。该方法在夜间场景下mAP@0.5提升11.7%,小目标检测AP_S提升15.3%,同时保持实时性(38 FPS)。关键技术包括:1)独立提取可见光与红外特征;2)可变形卷积解决模态对齐问题;3)动态门控机制自适应融合双模态特征。该方案适用于安防监控、自动驾驶等夜间检测场景,为跨模态实时检测提供实用解决方案。

走向CTO的路上... 1448

华为防火墙——本地Portal认证

配置IP地址、路由、Nat策略使得内网主机可以访问公网服务器对网段不进行认证,对网段进行portal认证。

m0_49864110的博客 3263

下拉式菜单设计——Power BI

Power BI导航设计:多级下拉菜单

weixin_41542593的博客 5437

C#操作MySQL从入门到精通(3)——新建数据库、新建表

我们要首先新建一个数据库,并且在数据库中新建一系列的表来管理数据库。

qq_34059233的博客 953

2026年美赛数学建模竞赛 MCM B题:使用太空电梯系统建立月球殖民地 问题一 月球殖民地材料运输的三种场景建模 详细解题思路和代码

如果运输系统不能完美工作(例如,系绳摆动、火箭失败、电梯故障等),你的解决方案在多大程度上会发生变化?技术可行性:三种方案在技术上都是可行的,但挑战不同 经济性:混合方案在长期视角下最具成本效益 时间效率:并行运输可以显著缩短总建设时间环境影响:太空电梯的环境优势明显,混合方案可平衡需求风险分散:混合方案提供了天然的风险分散机制

YOLO 619

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 机器学习基础——带你实战朴素贝叶斯模型文本分类
下一篇: 概率统计——期望、方差与最小二乘法
TechFlow
博客等级 码龄7年 347粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值