Nim Game是非常著名的游戏,它的变体也很多,在《编程之美》上也用了三章讲解它。
Wikipedia
上说的很详细,本文则是在对wiki上的内容阅读后的个人理解。
游戏概述:
有M堆石子,每堆石子的个数不一定相同,Bob和Alice交替取石子,只能在一堆石子上取,取的数目任意,但不能为0,也不能大于此堆石子的数目。获胜的判定有两种:一种是谁先把石子去完谁获胜,这种叫Normal Play;另一种是最最后把石子取完谁输,这种叫Misere Play。
假设有M堆石子,(H1,H2...HM),XOR(H1...HM) = X,我们的目标是将 (H1,H2...HM)变为(0,0...0),即XOR()=0,那么我们说任何XOR()=0的情