NIM博弈
NIM博弈是指有(n)堆石子,每堆石子有(a_i)颗,两个人轮流从任意一堆石子(i)中取走(x)颗((1leq xleq a_i)),没有石子可取的一方失败,判断胜败。
判断方法
判断NIM博弈的胜败采用异或运算:
必胜态:(a_1 XOR a_2 XOR a_3 XOR cdots XOR a_n
eq 0)
必败态:(a_1 XOR a_2 XOR a_3 XOR cdots XOR a_n = 0)
简要证明
首先从XOR为零的状态拿走任意颗石子,一定会转移到XOR不为零的状态,所以从必败态只能转移到必胜态。
下面证明从必胜态也可以转移到必败态。
设(a_1 XOR a_2 XOR a_3 XOR cdots XOR a_n = k(k
eq 0)),选取(k)的最高位为1的一堆石子(a_i),由于(a_i XOR k)之后,最高位的1没有了,所以(a_i XOR k<a_i),所以可以从(a_i)中选择一定数量的石子,使得剩下的石子个数为(a_i XOR k),这样(a_1 XOR a_2 XOR a_3 XOR cdots XOR (a_i XOR k)cdots XOR a_n = 0),所以由必胜态可以转移到必败态。