三种经典博弈(取石子问题)

news2024/11/28 9:22:40

三种经典博弈

  • 巴什博奕
  • 威佐夫博奕
  • 尼姆博奕

在这里插入图片描述

博弈是有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。


巴什博奕

有一堆 n n n 个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取 m m m 个。最后取光者得胜。

显然,如果 n = m + 1 n=m+1 n=m+1,那么由于一次最多只能取 m m m 个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。

因此我们发现了如何取胜的法则:如果 n = ( m + 1 ) r + s n=(m+1)r+s n=(m+1)r+s,( r r r 为任意自然数, s ≤ m s\leq m sm),那么先取者要拿走 s s s 个物品,如果后取者拿走 k k k ≤ m \leq m m)个,那么先取者再拿走 m + 1 − k m+1-k m+1k 个,结果剩下 ( m + 1 ) ( r − 1 ) (m+1)(r-1) (m+1)(r1) 个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下 ( m + 1 ) (m+1) (m+1) 的倍数,就能最后获胜。

这个游戏还可以有一种变相的玩法:两个人轮流报数,每次至少报一个,最多报十个,谁能报到 100 100 100 者胜。


威佐夫博奕

有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

这种情况下是颇为复杂的。我们用 ( a k , b k ) (a_k,b_k) (ak,bk) ( a k ≤ b k , k = 0 , 1 , 2 , … , n ) (a_k \leq b_k, k=0,1,2,\ldots,n) (akbk,k=0,1,2,,n) 表示两堆物品的数量并称其为局势,如果甲面对 ( 0 , 0 ) (0,0) (0,0),那么甲已经输了,这种局势我们称为奇异局势。前几个奇异局势是: ( 0 , 0 ) (0,0) (0,0) ( 1 , 2 ) (1,2) (1,2) ( 3 , 5 ) (3,5) (3,5) ( 4 , 7 ) (4,7) (4,7) ( 6 , 10 ) (6,10) (6,10) ( 8 , 13 ) (8,13) (8,13) ( 9 , 15 ) (9,15) (9,15) ( 11 , 18 ) (11,18) (11,18) ( 12 , 20 ) (12,20) (12,20)。(统计小规模数据)

可以看出, a 0 = b 0 = 0 a_0=b_0=0 a0=b0=0 a k a_k ak 是未在前面出现过的最小自然数,而 b k = a k + k b_k= a_k + k bk=ak+k。发现规律,得到猜想。

奇异局势有如下三条性质:

  1. 任何自然数都包含在一个且仅有一个奇异局势中。

由于 a k a_k ak 是未在前面出现过的最小自然数,所以只需证明 b k b_k bk 不会出现在前面的奇异局势中即可。由于 a k > a k − 1 a_k > a_{k-1} ak>ak1,而 b k = a k + k > a k − 1 + ( k − 1 ) = b k − 1 > a k − 1 b_k= a_k + k > a_{k-1} + (k-1) = b_{k-1} > a_{k-1} bk=ak+k>ak1+(k1)=bk1>ak1。所以性质 1 成立。(从第 0 项到第 k k k 项, a k a_k ak 是递增的;由于 b k = a k + k b_k=a_k+k bk=ak+k,所以 b k b_k bk 也是递增的。)

  1. 任意操作都可将奇异局势变为非奇异局势。

事实上,若只改变奇异局势 ( a k , b k ) (a_k,b_k) (ak,bk) 的某一个分量,那么另一个分量不可能在其他奇异局势中(性质 1),所以必然是非奇异局势。如果使 ( a k , b k ) (a_k,b_k) (ak,bk) 的两个分量同时减少,则由于其差不变,且不可能是其他奇异局势的差(因为 k k k 是递增的,所以每个奇异局势对应唯一一个差),因此也是非奇异局势。

  1. 采用适当的方法,可以将非奇异局势变为奇异局势。

假设面对的局势是 ( a , b ) (a,b) (a,b) (设 a ≤ b a\leq b ab,否则先交换 a a a b b b),若 b = a b=a b=a,则同时从两堆中取走 a a a 个物体,就变为了奇异局势 ( 0 , 0 ) (0,0) (0,0);如果 a = a k a=a_k a=ak b > b k b>b_k b>bk,那么,取走 b − b k b-b_k bbk 个物体,即变为奇异局势;如果 a = a k a=a_k a=ak b < b k b<b_k b<bk,则同时从两堆中拿走 a k − a b − a k a_k-a_b-a_k akabak 个物体,变为奇异局势 ( a b − a k , a b − a k + b − a k ) (ab-a_k,ab-a_k+b-a_k) (abak,abak+bak);如果 a > a k a>a_k a>ak b = a k + k b=a_k+k b=ak+k,则从第一堆中拿走多余的数量 a − a k a-a_k aak 即可;如果 a < a k a<a_k a<ak b = a k + k b=a_k+k b=ak+k,分两种情况,第一种, a = a j a=a_j a=aj j < k j<k j<k),从第二堆里面拿走 b − b j b-b_j bbj 即可;第二种, a = b j a=b_j a=bj j < k j<k j<k),从第二堆里面拿走 b − a j b-a_j baj 即可。

从如上性质可知,两个人如果都采用正确操作,那么面对非奇异局势,先拿者必胜;反之,则后拿者取胜。
给定一个局势 ( a , b ) (a,b) (a,b),如何判断它是否为奇异局势呢?我们可以使用以下公式:

a k = ⌊ k ( 1 + 5 ) / 2 ⌋ , b k = a k + k ( k = 0 , 1 , 2 , … , n ) a_k = \left\lfloor k\left(1+\sqrt{5}\right)/2 \right\rfloor, \quad b_k = a_k + k \quad (k=0,1,2,\ldots,n) ak=k(1+5 )/2,bk=ak+k(k=0,1,2,,n)

其中, ⌊ x ⌋ \lfloor x \rfloor x 表示取整函数。有趣的是,公式中出现了黄金分割数 ( 1 + 5 ) / 2 = 1.618 … (1+\sqrt{5})/2 = 1.618\ldots (1+5 )/2=1.618,因此由 a k a_k ak b k b_k bk 组成的矩形近似为黄金矩形。我们可以先求出 j = ⌊ a ( 5 − 1 ) / 2 ⌋ j = \lfloor a(\sqrt{5}-1)/2 \rfloor j=a(5 1)/2,然后判断:

  • a = a j a = a_j a=aj,则 a a a 是奇异局势, b = a j + j b = a_j + j b=aj+j
  • a = a j + 1 a = a_{j+1} a=aj+1,则 a j + 1 a_{j+1} aj+1 是奇异局势, b = a j + 1 + j + 1 b = a_{j+1} + j + 1 b=aj+1+j+1
  • 否则,继续按照上述方法进行判断,直到找到奇异局势或者判断结束。

另一种判断方法是:给定 ( a , b ) (a,b) (a,b) a < b a<b a<b),先计算 k = b − a k = b - a k=ba,然后根据 k k k 计算 a k a_k ak b k b_k bk。如果 a k = a a_k = a ak=a b k = b b_k = b bk=b,那么 ( a , b ) (a,b) (a,b) 是奇异局势,否则不是。


尼姆博奕

有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。这种情况最有意思,它与二进制有密切关系,我们用 ( a , b , c ) (a,b,c) (a,b,c) 表示某种局势,首先 ( 0 , 0 , 0 ) (0,0,0) (0,0,0) 显然是奇异局势,无论谁面对奇异局势,都必然失败。第二种奇异局势是 ( 0 , n , n ) (0,n,n) (0,n,n),只要与对手拿走一样多的物品,最后都将导致 ( 0 , 0 , 0 ) (0,0,0) (0,0,0)。仔细分析一下, ( 1 , 2 , 3 ) (1,2,3) (1,2,3) 也是奇异局势,(我先拿之后,)无论对手如何拿,接下来都可以变为 ( 0 , n , n ) (0,n,n) (0,n,n) 的情形。

计算机算法里面有一种叫做按位模 2 加,也叫做异或的运算,我们用符号 ( + ) (+) (+) 表示这种运算。这种运算和一般加法不同的一点是 1 + 1 = 0 1+1=0 1+1=0。先看 ( 1 , 2 , 3 ) (1,2,3) (1,2,3) 的按位模 2 加的结果:

1 = 二进制  01 2 = 二进制  10 3 = 二进制  11 1  (+)  2  (+)  3 = 0  (注意不进位) 1 = \text{二进制 } 01 \\ 2 = \text{二进制 } 10 \\ 3 = \text{二进制 } 11 \\ 1 \text{ (+) } 2 \text{ (+) } 3 = 0 \text{ (注意不进位)} 1=二进制 012=二进制 103=二进制 111 (+) 2 (+) 3=0 (注意不进位)

对于奇异局势 ( 0 , n , n ) (0,n,n) (0,n,n) 也一样,结果也是 0 0 0。任何奇异局势 ( a , b , c ) (a,b,c) (a,b,c) 都有 a  (+)  b  (+)  c = 0 a \text{ (+) } b \text{ (+) } c = 0 a (+) b (+) c=0

如果我们面对的是一个非奇异局势 ( a , b , c ) (a,b,c) (a,b,c),要如何变为奇异局势呢?假设 a < b < c a < b < c a<b<c,我们只要将 c c c 变为 a  (+)  b a \text{ (+) } b a (+) b 即可,因为有如下的运算结果:

a  (+)  b  (+)  ( a  (+)  b ) = ( a  (+)  a )  (+)  ( b  (+)  b ) = 0  (+)  0 = 0 a \text{ (+) } b \text{ (+) } (a \text{ (+) } b) = (a \text{ (+) } a) \text{ (+) } (b \text{ (+) } b) = 0 \text{ (+) } 0 = 0 a (+) b (+) (a (+) b)=(a (+) a) (+) (b (+) b)=0 (+) 0=0

要将 c c c 变为 a  (+)  b a \text{ (+) } b a (+) b,只要从 c c c 中减去 c − ( a  (+)  b ) c-(a \text{ (+) } b) c(a (+) b) 即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一体化协同平台助力企业回归生产本质,创造价值

核心观点 单点工具的串联无法有效解决研效痛点问题&#xff0c;企业需要通过一体化协同平台提高端到端价值流动效率。一体化协同平台的价值是软件工程理念最大化落地、数字化研发管理、沉浸式研发体验。一体化协同平台集成需要评估闭环效率杠杆&#xff0c;确定集成边界和集成…

什么是关系模型? 关系模型的基本概念

关系模型由IBM公司研究员Edgar Frank Codd于1970年发表的论文中提出&#xff0c;经过多年的发展&#xff0c;已经成为目前最常用、最重要的模型之一。 在关系模型中有一些基本的概念&#xff0c;具体如下。 (1)关系(Relation)。关系一词与数学领域有关&#xff0c;它是集合基…

TensorRT 从7.2升级到8.5,改写plugin以适配新版本

前言 TensorRT是NVIDIA推出的一款高效深度学习模型推理框架&#xff0c;其包括了深度学习推理优化器和运行时&#xff0c;能够让深度学习推理应用拥有低时延和高吞吐的优点。 TensorRT的版本迭代速度非常快&#xff0c;很多之前写的plugin在版本升级后可能就没法直接使用&…

广州虚拟动力携数字人交互技术产品参展第十九届深圳文博会

2023年6月7-11日 深圳国际会展中心 第十九届深圳文博会正式举办&#xff01; 广州虚拟动力携数字人交互技术产品参展 诚邀您莅临粤港澳大湾区馆&#xff08;11号馆&#xff09; 广东参展团展位参观交流 数字技术&#xff0c;引领文化产业新发展 中国文化及相关文化产业的…

【Apache Pinot】Controller、Broker 和 Server 的概念和工作流程

背景 笔者最近一段时间使用 Apache Pinot 比较多&#xff0c;发现目前国内使用 Pinot 的很少&#xff0c;所以跟他相关的资料也比较少&#xff0c;本人在扩容&#xff0c;升级&#xff0c;部署&#xff0c;查询等方面操作有些许经验&#xff0c;知道其中有很多细节需要注意和规…

北邮22信通:实验七 三角波-方波(锯齿波-矩形波)发生器实验报告(着急验收的同学先看看,后续细节正在赶来中)

北邮22信通一枚~ 持续更新模电实验讲解 关注作者&#xff0c;解锁更多邮苑模电实验报告~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22信通——电子电路_青山如墨雨如画的博客-CSDN博客 实验七 三角波-方波&#xff08;锯齿波-矩形波&#xff09;发生器实验…

数据结构——树的概念、二叉树的概念

文章目录 引言1.树的概念1.1.树的其他相关概念 2.树的代码实现的结构2.1.树形结构的应用 3.二叉树的概念3.1.特殊二叉树的概念3.1.1.完全二叉树3.1.2.满二叉树 3.2.二叉树试题讲解3.2.1.试题一3.2.2.试题二3.2.3.试题三 4.二叉树的存储结构4.1.顺序结构存储4.2.链式结构存储 引…

重温经典:简读光干涉、衍射原理

如果您不是光学专业的&#xff0c;或者是文科生&#xff0c;那么您想到光的干涉和衍射第一反应应该是很多公式对不对&#xff1f;头好大是不是&#xff1f;好&#xff0c;那么今天我们就不用一个公式来重新解读光的干涉和衍射。 光&#xff0c;也叫电磁波&#xff0c;他的表现…

java并发编程:Java线程池详解

文章目录 为什么要用线程池线程池的原理ThreadPoolExecutor提供的构造方法ThreadPoolExecutor的策略线程池主要的任务处理流程ThreadPoolExecutor如何做到线程复用的&#xff1f; 四种常见的线程池newCachedThreadPoolnewFixedThreadPoolnewSingleThreadExecutornewScheduledTh…

web3.js获取导入

我们访问 https://github.com/ 我们搜索 web3.js 然后我们直接点击第一个进去 进入之后 往下拉 你会看到 它支持node项目的两种引入方式 这里 大家可以直接下载我的资源 https://download.csdn.net/download/weixin_45966674/87878737 下载好解压出来就会有一个 web3.min.js…

C#读写EM4205/4305/4469卡复制ID卡制做FDX-B动物标签源码

EM4305/EM4205卡是采用瑞士EM微电子公司工作频率为125kHz&#xff0c;具有读、写功能的非接触式RFID射频芯片&#xff0c;它具有功耗低、可提供多种数据传输速率和数据编码方法等特点&#xff0c;适合射频芯片ISO 11784/11785规范&#xff0c;该芯片被广泛应用于动物识别和跟踪…

《C++高级编程》读书笔记(五、六:面向对象设计设计可重用代码)

1、参考引用 C高级编程&#xff08;第4版&#xff0c;C17标准&#xff09;马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门&#xff0c;笔记链接如下 21天学通C读书笔记&#xff08;文章链接汇总&#xff09; 1. 过程化的思考方式 过程语言&#xff08;例如 C&#xff09;将…

玄奘文旅集团主办学习强企玄奘之路戈壁挑战赛在敦煌圆满完赛!

“学习改变命运&#xff0c;强企复兴中国”&#xff0c;2023年4月16日-20日&#xff0c;由玄奘文旅集团主办的“第23届26届学习强企玄奘之路戈壁挑战赛&#xff08;联赛&#xff09;”在千年古城敦煌圆满落幕&#xff01; 这是商界各行业的一次跨界融合&#xff0c;也是疫情过…

感性了解一下互斥和信号量

一、互斥的四个概念 我们把大家都能看到的资源叫做&#xff1a;公共资源 a、互斥&#xff1a;任何一个时刻&#xff0c;都只允许一个执行流在进行共享资源的访问——加锁 b、我们把任何一个时刻&#xff0c;都只允许一个执行流进行访问的共享资源叫做临界资源 c、临界资源需…

【TA100】图形 2.4 传统经验光照模型详解

一、光照模型 ● 一种模拟自然光照过程的计算机模型 ● 本次课程可以这样理解&#xff1a;光线与物体表面的作用 ● 分类 ○ 基于物理的光照模型&#xff08;PBR&#xff09;&#xff08;有可依据的公式&#xff09; ○ 经验模型&#xff08;进行了一些近似、模拟&#xff0c;…

【小呆的概率论学习笔记】正态分布的代数运算

文章目录 1. 正态分布简介1. 正态分布的数字特征2. 正态分布的代数运算a. 单随机变量的代数运算b. 两个正态分布随机变量的和c. 多个正态分布随机变量的线性组合 1. 正态分布简介 正态分布应该是概率论和数理统计中最重要的一类概率分布&#xff0c;最早的完整论述是由数学王子…

自用-华东师范大学硕士学位论文LATEX模板

文章目录 前言部分页面效果预览使用说明&#xff1a;毕业论文LaTeX模板1. 安装LaTeX发行版和TeX Studio&#xff1a;2. 下载毕业论文模板&#xff1a;3. 编辑论文内容&#xff1a;**标题和作者信息&#xff1a;****摘要和关键词&#xff1a;****章节内容&#xff1a;****图片插…

【Linux】-关于调试器gdb的介绍和使用

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 文章目录 前言一、Linux中的debug和release二、gdb的使用**1.进入调试****2.显示代码*…

配置SSH免密登陆

配置SSH免密登陆 1.生成公私密钥对1&#xff09;检查是否已存在公私钥对2&#xff09;生成公私钥对 2.上传公钥到服务器3.ssh-add&#xff08;mac的坑点&#xff09;4.使用配置文件连接 博主是MAC用户&#xff0c;文章参考知乎 1.生成公私密钥对 1&#xff09;检查是否已存在…

Redis高性能设计之epoll和IO多路复用深度解析

一 多路复用 并发多客户端连接&#xff0c; 在多路复用之前最简单和典型的方案&#xff1a;同步阻塞网络IO模型 这种模型的特点就是用一个进程来处理一个网络连接&#xff08;一个用户请求&#xff09;&#xff0c;比如一段典型的示例代码如下&#xff1a; //直接调用recv函数…