题目要求:有两堆物品n,m>0在两个盒子中,要求轮流操作,将一个盒子清空,将另一个盒子的物品分到清空的那个中,使得两个盒子都不为空,当两个盒子中都只剩一个的时候结束。最终成功执行将两个盒子都剩一个的人获胜,问先手胜还是后手胜?
解题思路:
猜测:对于两堆物品(x,y),如果x,y同时为奇,则该状态为P(必败)状态,有一个为偶,则该状态为N(必胜)状态。
证明:
对于(1,1)显然是先手必败,即P态。
对于max(x,y)=2时,(1,2)(2,2)(2,1)都是先手必胜,即为N态。即max(x,y)=2时成立。
假设max(x,y)<k时成立,现证明max(x,y)=k时也成立。
若max(x,y)=k中有一偶数a,则将另外那个盒子清空,将a分为两个奇数b,c,max(b,c)<a<k。由假设知后手必败,先手必胜。即(x,y)为N态。
若max(x,y)=k中有两个奇数,则将一个清空,另一个分为一奇一偶max(a,b)<max(x,y)=k,由假设知后手必胜,先手必败。即(x,y)为P态。
证毕。
结论:即对于所有的自然数(x,y)都有,如果有一个是偶数,为N态,如果两个都为奇数,则为P态。