Moore’s NimK(尼姆博弈问题的拓展)
问题描述:两个人玩取石子游戏,共有N堆石子,每个人每次可以从k堆石子里面任意多个石子,不能取的人输
取胜方法:把n堆石子的石子数用二进制表示,统计每个二进制位上1的个数,若每一位上1的个数mod(k+1)全部为0,则必败,否 则必胜。
方法证明: 如果全0 必败
(1)如果每个二进制位的1的个数mod(k+1)都为0 则为必败态(思考一下为什么 ,这个很重要)
(2)如果有一个二进制位的1的个数mod(k+1)不为0,则可以通过一次操作,使其为 0 .
(3)如果有二个二进制为的1的个数mod(k+1)不为0 ,则通过 一次循环操作(甲乙都操作一次),使其为0
(4)如果有三个个二进制为的1的个数mod(k+1)不为0 ,则通过 一次循环操作(甲乙都操作一次),使其转3.
。。。。。。。。。。
则判断取胜方法得证