关于SG函数的一些演算
来源:互联网 发布:淘宝店铺装修2017模板 编辑:程序博客网 时间:2024/06/11 21:13
问题
在一个有n堆石子的取石子游戏中,双方玩家根据既定规则,依次轮流从n堆石子中取走石子,且每人每次只能从单一的堆中取出石子.当某个玩家无法按照既定规则取出石子时,该玩家落败,同时另一名玩家获胜.
现在,给定n堆石子,问先手玩家是否可以获胜.
定义
将第i堆石子记为hi,用元组(h1,h2,…,hn)表示由这n堆石子组成的局面S,记为:
S=(h1,h2,…,hn)
特别地,当n=1时,记为S=(h1)或S=h1.这样,hi除了可以表示一堆石子外,还可以表示一个只有一堆石子的局面.
局面的后继:若局面S经历一次取出后变为局面T,则称T是S的后继.
结束局面:若玩家无法按照既定规则从S中取出石子,则称S为”结束局面”,结束局面没有后继.
mex函数
定义非负整数幂集上的函数mex:
mex(A)=min({x|x∈N-A})
直观上,可将mex理解为”集外最小序数”.
f函数
定义堆集合上的函数f:
f(h)= mex({f(i)|i是h的后继})
特别地,若h是一个结束局面,则f(h)=0.
现在,将f的定义域扩展到n维:
f(h1,h2,…,hn) = f(h1)⊕f(h2)⊕…⊕f(hn)
再次扩展f,使其可以作用于局面.即对于任意局面:
S=(h1,h2,…,hn)
T=(i1,i2,…,im)
定义:
f(S)=f(h1,h2,…,hn)
f(S,T)=f(h1,…,hn,i1,i2,…,im)
结论
f具有下列性质:
- 若S是结束局面,则f(S)=0
- 若f(S)=0,则f(T)!=0
- 若f(S)!=0,则存在T,f(T)=0
进一步:
- 若f(S)=0,则先手玩家必败
- 若f(S)!=0,则先手玩家必胜
证明
不加证明地给出关于异或(⊕)运算的下列性质:
- 性质1: a⊕b=0当且仅当a=b
- 性质2: 若a⊕b=c,则a⊕c=b
- 性质3: 若a=a1⊕a2⊕…⊕an,则存在ai(1≤i≤n)满足:ai⊕a<ai
同时给出关于f的下列性质:
- f(h1,h2,…,hn)=f(h1,…,hi)⊕f(hi+1,…,hn), 1<i<n
证明:若S是结束局面,则f(S)=0
若S只包含一个堆,f(S)=mex(∅)=0.
若S=(h1, h2, …, hn),
显然对于∀i(1≤i≤n),hi是结束局面.
所以 f(S)=f(h1)⊕f(h2)⊕…⊕f(hn)=0
证明:若f(S)=0,则∀T,若T是S的后继则f(T)≠0
设 S=(h1, h2, …, hn),
因为 f(S)=0
所以 f(h1)⊕f(h2)⊕…⊕f(hn)=0
所以 f(h1)=f(h2)⊕…⊕f(hn)(⊕的性质1)
不妨设T是玩家从h1中取走石子后生成的局面.
即 T=(h1*, h2, …, hn)
所以 f(T)= f(h1)⊕f(h2)⊕…⊕f(hn)=f(h1)⊕f(h1*)
注意到h1*是h1的后继,由f的定义易知:
f(h1*)≠f(h1)
所以 f(h1*)⊕f(h1)≠0(⊕的性质1)
所以 f(T)≠0
证明:若f(S)≠0,则∃T,T是S的后继且f(T)=0
设 S=(h1, h2, …, hn),f(S)=a>0,
不妨设h1⊕a=b<h1
又设T=(h1*, h2, …, hn),
易知:f(T)=a⊕f(h1)⊕f(h1*),
即:f(T)=b*f(h1*),
另一方面,由mex的定义可知,对∀0≤x<a, ∃i st. f(i)=x 且i是h1的后继,
所以必存在: h1*=b
即必有T st. f(T) = 0
- 关于SG函数的一些演算
- sg函数的一些题
- 关于SG函数
- [博弈]SG函数的求法和一些结论 NIM博弈
- 博弈论的一点资料,关于NIM和SG函数
- 博弈论的一点资料,关于NIM和SG函数
- 关于 Nim游戏与SG函数 的一点研究
- 对于SG函数的理解
- SG函数的基本理解
- SG函数的详细解释
- 博弈论SG函数的笔记
- poj2960 SG函数 dfs(了解sg函数的求法)
- lambda演算的荣光
- 神奇的λ演算
- 函数式编程----lambda演算
- 函数式编程----lambda演算
- 关于Oracle的一些函数
- 关于函数的一些总结
- MySql(5)------SQL基础之union,union all
- 如何快速入门深度学习
- oracle数据文件收缩
- MFC连接MySQL数据库实例
- 为fuchsia编译qemu
- 关于SG函数的一些演算
- 《Hadoop环境部署》
- 【易语言界面开发系列教程之 (EX_UI使用系列教程--第10讲(EXui右键菜单演示案例))】
- android 移动View的方法汇
- 配置sonar、jenkins进行持续审查
- jquery 即点即改
- Android权限机制 << 推荐阅读
- 时间单位换算
- Android-缓存网络图片(MVP模式)学习笔记