前言
阶梯博弈是一种nim游戏的变类, 它的主要思想是对奇数阶梯进行nim游戏.
介绍
什么是阶梯博弈?就是给你一个阶梯, 这个阶梯每一级上有一堆石子, 你可以每次选择某一级, 将这一级上的一些石子推到下一级. 当第一级的石子被推下就到了地上. 现在两个人轮流取石子. 当某个人取时, 刚好阶梯上没有石子, 这个人就输了.
做法
其实就是对奇数阶梯上的堆作nim, 等下我们再来说他的正确性.
先说说怎么保证能正常做nim吧. 我们每次把奇数阶梯上的石子推到偶数阶梯上, 就好比取掉奇数阶梯上的石子(因为我们忽略了偶数阶梯, 只对奇数做nim). 我们每次就去选奇数阶梯的石子去推.
但是对手可能不会遵守我们所说的奇数nim的玩法, 比如说对手可能把偶数阶梯的石子推向奇数阶梯, 这就不对劲了——你在做对奇数阶梯的nim游戏, 你对手将某一堆石子变多了? 我们不能改变对手, 我们就试图将一切恢复正常, 他推了偶数阶梯的石子, 推到了奇数阶梯, 你再把这个奇数阶梯多的石子再往下推到偶数阶梯, 那么所有奇数阶梯的石子都没有被改变,并且玩家先后顺序也没有改变, 这就避免了非法情况.
那么奇数阶梯的nim做完, 也就是说奇数阶梯上的石子都被取完了, 但是还有偶数阶梯上还有石子. 那么对于奇数阶梯上的石子恰好没有了的时刻, 谁此时是先手谁就必输. 因为此时的先手只能推偶数阶梯上的石子到奇数阶梯上去, 此时的后手只需要跟着先手的步伐, 再把先手转移到奇数阶梯上的石子又推到偶数阶梯上去. 这样一来, 先手每次就只能推偶数阶梯上的石子, 1号阶梯上的石子——1作为奇数, 只能由后手来推, 那么最后的石子一定被后手推下去.
这就证明了对奇数阶梯做nim的正确性. 若对偶数阶梯做nim, 做完nim最后还剩阶梯上的奇数石子, 此时无法确定当前时刻先手后手谁赢. 可以参考上一段最后几句做完nim关于谁赢的正确性.
综上, 我们只需要对奇数阶梯做nim, 最后我们就能知道取走最后一堆奇数阶梯上的石子的是谁, 这个nim游戏的赢家, 也就会成为对只剩偶数阶梯上的石子的游戏局面的后手, 成为最终赢家.
阶梯博弈, 不得不说, 实在是有趣.