[笔记]博弈论 & SG 函数
1.莫比乌斯反演笔记2.欧拉定理 & 扩展欧拉定理 笔记3.高级数据结构笔记4.多项式(Poly)笔记5.扩展中国剩余定理(Excrt)笔记6.一次线性方程组 高斯消元笔记7.群论笔记8.字符串学习笔记9.一些典型的计数10.图论笔记11.高等代数笔记
12.[笔记]博弈论 & SG 函数
13.[笔记]决策单调性14.[笔记]线性基15.[笔记]组合数学的符号化方法16.[笔记]后缀自动机笔记17.[笔记]生成函数及其展开技巧18.[笔记]min25 筛19.[笔记]各种模板20.[笔记]插值21.[笔记]杜教筛 & Powerful Number 筛22.[笔记]动态规划优化(斜率优化,决策单调性优化)23.[笔记]行列式24.[笔记]Stern-Brocot 树25.[笔记]Important Tricks And Lemmas一直没学结果今天被创了。
一些定义:
- :集合 中最小的没有出现过的非负整数。
- :按位异或。也叫做 。
博弈状态
- 定义
P-position
为“必胜态”,即positive-position
,简称P
。某个玩家到达该状态则一定胜。 - 定义
N-position
为“必败态”,即negative-position
,简称N
。某个玩家到达该状态则一定败。 - 定义某个状态的”后继状态”当前玩家从当前状态进行一次操作能够到达的状态集合。
- 一个状态为
P
,当且仅当其后继状态存在至少一个必败状态。 - 一个状态为
N
,当且仅当其后继状态全部都是必胜状态。
博弈图
- 将每个状态向其后继状态连边,每条边表示转移,形成一个有向无环图称为博弈图。
SG 函数
-
定义有向图游戏上的函数 。对于 的后继状态 ,有 。对于必败态定义其 为 。
-
在有向图游戏中, 是容易递推求出的。
SG 定理
- 对于有 个起点的有向图游戏,设他们的起点分别为 ,则有:当且仅当 ,该游戏先手必胜。
- 不会定理的证明/ll
尼姆游戏(Nim 游戏)
- 又称取石子游戏。有 堆石子,每一堆有 个。两个人以最优策略轮流取,不能操作的失败。求先手必胜还是必败。
- 我们将 Nim 游戏转化称有向图游戏。发现每一堆是相互独立的。将每一堆建成有向无环图,节点 连向 当且仅当 。不难发现 。根据 SG 定理,先手必胜当且仅当 。
SG 函数的应用
-
例 1:UVA1482 Playing With Stones:仍然是取石子游戏,但是每次取的个数有限制,从每次随便取,变成每次取不超过每堆的一半。
我们通过打表观察 函数,可以发现一些规律:
- 若 ,则 。
- 若 ,则 。
- 若 ,则 。
将每一堆的 SG 异或起来。复杂度 。
-
例 2:台阶-Nim 游戏:还是取石子,但是石子放在台阶上,每次可以从上面的台阶上拿下来若干个放到下面的台阶上去。放到地上的不能再动。求先手必胜还是必败。
可以将该问题等价为奇数位置的石子组成的尼姆游戏。我们考虑,设该游戏的 SG 值为奇数位置的石子个数的亦或和。如果先手下,先手一定可以移动石子使得 SG 变为 。否则,后手无论怎么移动,先手可以将他移动个数相同多的石子移动到下一级,让 的状态转移给后手。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示