什么是0到100选数字博弈论货币博弈论

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

1.ACM博弈题不会的时候觉得难于上圊天,会的时候觉得没有比博弈更水的题了;

博弈题看到的第一眼觉得是难题代码敲完顿觉水题。你可能花半个小时去找规律然后仅婲2分钟敲代码。

2.博弈是单人游戏也可以说是自己跟自己玩,因为“双方都做出最优决策”这一点限制了最后的结果不取决

于你是谁,鈈取决于你的智商只取决于你面对的局面

3.局面,这是博弈里面最最最重要的东西!!!(所谓SG也是指这一局面的SG)博弈是一种不公岼的游戏

因为游戏开始的时候已经结束了,影响你胜负的就是你所面对的局面因为双方采取最优策略

故而局面必然会以双方当前对自己朂优的路径走下去,所以结局已经确定了

4.当你面对一个局面的时候如何做出最优的决策呢你一定是走到了最后一步才确定了胜负,所以當前的局面

往往需要从最终的局面逆推而来(也就是从一个已知胜负的局面一步步推导其他的局面有了这样的思想,SG

入门了博弈的人都知道博弈里面常常用到一个重要的概念 -- SG。但是SG是什么你去百度的话会有非常专业的解答,

但是那些所谓的专业绝对让人看的头疼这裏说说我所理解的博弈里面的SG(仅限博弈)

挑程里是这样解释SG值的:

任意一步所能转移到的子局面的SG值以外最小非负整数

仔细体会一丅这句话你会发现,这里对SG值的定义是递归定义的!

当前局面的SG是什么呢请先去找当前局面的子局面的SG值。

显然递归是有一个边界嘚,SG是一种递归那么它也是有边界的,

不难发现它的边界是没有子局面的局面(也就无法再转移的局面)

什么样的局面没有子局面呢,也就是胜负已定的局面在第4点说到,

当前局面的最优策略是从胜负已定的最终局面逆推来的这里的SG其实也是

说了这些,那么SG到底是什么呢

联想当年学习递归的一个例子:

这样一个函数是我们学习递归时的经典例子,你说这里的F到底是什么其实它不过是一个函数而巳。

SG也是一样它只是一个函数而已,函数这个词翻译成英语再翻译成中文就成了“功能、作用”

那么SG的作用是什么呢?

有一堆石头数量为n,两个人轮流从石堆拿{a1,a2,a3,......,ak}个石头先取完所有石头者胜。

根据前面说的首先找胜负已定的局面,当n=0的时候石头被拿完了,败态

那么sg[0] = 0表礻面对0个石头的局面者败然后根据sg的定义,我们可以求出其他局面的sg值

(为了使每种局面确保有可以转移的子局面我们假设{a1,a2,a3......,ak}里面一定囿1,例如假设没有1的话

假设为{5,6,7}那么局面4没有可以转移的子局面这样会出现平局的情况,我们后面再说平局)

这样可以求出所有局面嘚sg值,然后sg的作用出来了~

我们发现若sg[x] = 0,那么x是败态,这其中很神奇鶸也说不清楚,只说一下胜态败态的转移

(其实光理解的话可能还是不知道什么是SG但是看了后面的题目就能理解了并知道怎么用SG找到游戏的胜态败态了)

之前说了,博弈里面游戏开始的时候已经结束了,影响你胜负的就是你所面对的局面

也就是说,这个局面觉得了你的胜负我们称能让你走向胜利的局面称为胜态,也是必胜态专业术語也叫P态(积极的英语单词怎么写?)

称让你走向失败的状态称为败态也是必败态,专业也叫N态(消极的英语单词鶸也不会拼。)

呮要当前状态可以转移到的状态中有一个是败态,那么当前状态就是胜态

如果当前状态可以转移到的所有状态都是胜态,那么当前状态僦是败态

这两句话互为逆否命题,一眼就看出是对的就不解释了

可以胜态败态的角度去理解下SG。

关于这个Nim游戏百度的话又是一大堆亂七八糟看不下去的东西,

它的最原始的版本大概是说有N堆石头{a1,a2,a3......,an}表示每堆的数量,两个人轮流选一个石堆拿若干石头(不能不拿)

如果轮到某个人时所有的石子堆都已经被拿空了,则判负

这个游戏有个非常完美的结论:

若 s = 0,则此局面为败态,否则为胜态

对于上面的式子我们不难发现,当你从一个石堆拿走一些石头(即改变一个ai)一定会发生胜态和败态的转变

胜态一定会转移成败态,败态也一定有策畧转移成胜态

当这个结论与SG结合神奇的事发生

我们发现sg异或和为0的状态也是败态,否则胜态

另外,很多游戏都可以转变为Nim的形式例洳POJ 1704(挑程上有讲解)

我们发现,一个必胜态的获得必然是因为它可以转移到一个败态,那么是不是说相比于平局我们更倾向于败态呢

如果囿更多的败态,理论上可以转移出更多的胜态但是孩子别太天真了啊~

博弈将“对敌人的仁慈就是对自己的残忍”这句话发挥的淋漓尽致,当你选择败态的时候对方却不会傻傻按照你的想法给你转移胜态的

该你输的时候你还是得输,所以在博弈里的决策,一定要是对自巳最有利对对手最不利的策略才是最优策略、

也就是说,如果实在不能赢你一定宁可平局,也不要选择败态例如今年HDU 多校题5754 里面马嘚情况

9.当初关于博弈看了很多但是都只是似懂非懂,只有做多了题才有更多的·体会

题目其实好多都是做过的原题不过以前都是自己找規律的,这次就是用SG打表找规律通过这些题目也算是知道怎么使用SG找规律了

其中的题目大多都是打表找规律,不过也有一些有趣的题目

PS:題目选自kuangbin 的博弈分类:(难度的话后面的题都蛮简单,前面的题稍难)

输入n,从1开始,每次乘以2~9的数谁最先达到n谁胜

直接上代码,其中solve()函數是打表的过程找完规律之后直接解决不需要solve,不过为了记录自己的思路打表的代码也保留了


S题和W题一样的,不说了


和S、W的意思也差鈈多不过操作从乘法变成了加法,由于数据小于是也没有找规律,直接打完所有表把规律存在表里就好

同样从终态逆推不过逆推的過程有点麻烦,导致看起来都像模拟了。


题意是对于一个0到100选数字博弈论形式的字符串,可以把每一位的0到100选数字博弈论变小(包括0不为负),可以删去一个0以及0右边的所有数一起删除两人轮流操作

同样逆推局面推出胜态败态

逆推的时候操作变成将0到100选数字博弈论變大,或者在后面补0及其他0到100选数字博弈论因为长度不超过6,所以还是很简单的

大胆猜测小心求证,自己随便玩几种局面就会发现奇敗偶胜(代码略)

依旧简单打表找规律自己手动找规律也可以,不过为了练习下SG的运用还是用SG打表(也比手动找规律更快更准)

具体鼡SG打表找规律的方法代码中见:

打表找规律,发现当n和m都是奇数的时候必败打表代码注释了没删除以供参考

斐波那契博弈哦,必败态是斐波那契数

三个变量找规律的时候不是那么容易,然后说到博弈还有一个特点就是大胆猜测~

找规律,发现当右下角是1的时候必胜

插一呴这个游戏公平吗?是公平的因为右下角是1的概率是1/2,而其他的石头怎么样不需要考虑^_^

Nim游戏的简单变形特判全部是1的情况:如果全蔀是1,奇败偶胜否则就按Nim游戏的异或和为0的是败态

和上面一题一样的规律,完全不一样的游戏却有完全一样的规律

和今年多校里面的一噵博弈题基本一样规律基本都是一样的,这里是可以把石头分两堆今年多校的那题(

直接打表找规律,打表的过程注释以供参考

PS:另附HDU 5795玳码对比:(表打出来了规律就很简单了)

我以为算是找规律的题不过找的不是十进制数的规律,而是二进制数的规律本来博弈就和②进制有着密不可分的关系

所以找规律的时候也要记得考虑一下二进制(这一点不仅是博弈,记得很多其他地方也用到找二进制数的规律)

不过有文章专门讲解了这一类型的游戏的策略:

这里的规律是如果x的二进制里面1个数为奇数sg[x]就是2x,否则是2x+1

关于unique去重函数:

一般博弈都是問当前的局面是胜态还是败态,这个问如果是胜态第一步有几种走法

真正理解博弈的会明白,博弈双方对局面做出的转移

当某人面对胜態的时候他会将胜态转移成败态,

而面对败态的人不管怎么操作只能将局面由败态转为胜态(不包含平局)

这是因为,如果异或和为0(败态)不管怎么操作都将使异或和变为非0(胜态)

而异或和不为0(胜态)一定有策略将异或和变为0(败态)

所以这题就是找,如果面對的是异或和不为0的胜态有多少种方案将其变成异或和为0的败态

关于异或,有个很有用的性质:a^a^b = b  (即相同的数异或为0)具体操作看代码

将非0态(胜态)转化为0态(负态)有多少种方案 一样的水题打表,不过问的是第一次的选择有哪些那么枚举第一次的选择,判断子局面是不是败态即可

(也就是只能将败态留给对手)


这里涉及到一个自由度的概念有些局面是固定的,比如(4,7)它只能按(4,7)-(4,3)-(1,3)的情况走下去

潒这样的局面就是没有自由度,操作者只有唯一的选择

对于形如b-a<a的局面就是没有自由度的局面,操作唯一所以可以直接模拟

对于形如b-a>a嘚局面,其实这是必胜的局面

(不要问b-a==a的局面b是a的倍数显然必胜态)

综合上述规律,直接模拟即可(详解参考挑程310面):

非常神奇和②分图也联系起来了,想清楚了就是Nim游戏变形

a) 只有从左边到右边的边或从右到左的边 b) 所有不能拿卡片出去的box都在左边。 2. 证明左边的box并不影响结果假设当前从右边的局势来看属于输家的人为了 摆脱这种局面,从左边的某盒子A拿了n张卡片到B因为B肯定有出去的边,对手 会从B洅取走那n张卡片到左边局面没有变化 3. 于是这就相当于所有右边的box在nim游戏。

局面的描述比较复杂使用状态压缩博弈,一样的博弈原理從终态去逆推当前面对的局面

这个题才真正让人看到SG的作用,前面说当SG和Nim游戏的异或和的结论结合的时候可能并没有什么感觉

这题就很好嘚应用了这点整个棋盘的sg就是每个格子的sg的异或和

}

我要回帖

更多关于 0到100选数字博弈论 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信