组合游戏

来源:互联网 发布:金鑫松 知乎 编辑:程序博客网 时间:2024/06/05 16:41

Nim游戏:

有k堆石子,每次取走其中的一整堆或者一堆中的多个。取走最后一个石子的玩家获胜。

 

如果Nim和为0,先手每次取了多少,后手取相同的。从而达到后手必胜。

反之,不为0时,先手可以通过一次操作使其Nim和为0,从而先手必胜。

 

 

SG(x) = mex(SG(y)|x->y)

能从x状态转移到y状态,mex(Y)表示不存在与Y中的最小自然数

一堆棋子:

SG(0) = 0;            SG(1) = mex(SG(0)) = 1

两堆:

SG(0,0) = 0       SG(0,1) = mex(SG(0,0)) = 1

n堆棋子:

SG(x1,x2........xn) = x1到xn的异或和

 

定理:

每个SG游戏都可以等效为一堆数为k的棋子。

因此当多个游戏同时运行,而且每次只能进行一步操作,每个SG看成一堆棋子,从而转变成取棋子游戏。




/*学习,未完

 

 

 

 

 

 

0 0
原创粉丝点击