博弈总结

1、nim博弈

n堆石子,每次可以从一堆里面取任意个石子

对于一堆石子,SG函数就是石子数,整个游戏的SG函数是每一堆石子的SG函数的亦或和

必胜:SG不为0

必败:SG为0

 

2、巴什博奕(Bash Game)

一堆石子,每次最多从里面取 m 个石子

一堆石子的SG函数为石子数 % (m + 1)

必胜:SG不为0

必败:SG为0

 

3、Nimk Game

每次最多可以同时从 k 堆石子进行操作,这 k 堆可以取不同数量的石子

一堆石子的SG函数为石子数

对每一个二进制位单独算,求SG函数每一个二进制位1的个数 % (k + 1),如果都为 0 ,则必败,否则必胜

 

4、Anti-Nim Game

与 nim 博弈相反,

不能取石子的一方获胜

必胜:SG不为 0 且至少有一堆石子数大于 0 或者SG为 0 且每一堆石子数都为 1

必败:其余为必败

 

5、阶梯博弈(Staircase Nim)

每次可以从一个阶梯上拿掉任意数量石子放到下一层阶梯,不能操作的为输

SG函数为奇数阶梯上的石子的亦或和

 

6、威佐夫博弈(Wythoff Game)

有两堆石子,每次可以从一堆或者两堆里拿走一样数目的石子,不能取的为输

若两堆石子的初始值为(x,y),且 x < y ,则另z = y - x,记w=(int)[((sqrt(5)+1)/ 2)* z  ]  // 向下取整

若w = x,则先手必败,否则先手必胜。

详解见博客:https://blog.csdn.net/qq_41311604/article/details/79980882

 

7、树上删边游戏

给定根节点,每次可以删掉一条边,不与根节点相连的部分删除

叶子节点SG为0,其他节点的SG函数为子树SG+1的亦或和

posted on 2018-10-09 21:35  scau_lok  阅读(169)  评论(0编辑  收藏  举报

导航