经典博弈论模型nim游戏的母题
状态分析
首先抛出结论:当ai的异或和等于0时,是必输状态,否则为必胜状态
简单证明:
1.已知最终状态所有的a[i]都等于零,异或和s等于0,,显然为必输状态。
2.当异或和为0,任意操作会使异或和不为0。
3.故若某个异或和为0,不可能使下一步达到最终状态,因为最终状态异或和为0。既然不可能使下一步为最终状态,也就说明不可能使另一个人无路可走,也即己方的必败状态。
4.显然在nim游戏中非必败即必胜,则补集异或和等于零为必胜状态
补证nim游戏非必败即必胜:
1.最终状态只有一种,所有数为0,为必败状态
2.非最终状态的某一状态的后继状态,①、全为必胜状态,则该状态为必败状态;②、存在必败状态,则该状态为必败状态。显然这两种事件为对立事件,得证。
必胜策略
由于异或的性质,我们一定能找到一个数,它的最高位与异或和s的最高位都为1.
那么:对于这个数我们只需要将所有s上为1的位数记录下来,在a[i]的对应位置取反,就可以使该位置上1的数量的奇偶性发生变化,使s变成0
代码
#in