题目是这样的:
我的思路:
1.首先,对于游戏开始时的任何一种状态(a,b),我想要证明它要么是必胜态,要么是必输态,不存在不确定状态。但是现在不好证明,我先假设这个结论正确(最后我会证明)。随后,我们的讨论会基于这个假设。
2.有了上述假设,我们得出推论:
推论一:状态(a,b)是必胜态等价于存在一种合法的取石子的方案(△a,△b),使得(a-△a,b-△b)为必输态。
(因为(a-△a,b-△b)只可能是必胜态或必输态之一,若它为必胜态则与(a,b)是必胜态矛盾,所以它是必输态)
3.于是,显然又有推论:
推论二:状态(a,b)是必输态等价于不存在合法的取石子的方案(△a,△b),使得(a-△a,b-△b)为必输态。
接下来,证明以下结论:
结论一:对于任意非负整数a,必存在非负整数b,使得(a,b)为必输态,且这样的b只有一个
证:(第二数学归纳法)易知该结论对0成立:(0,0)是必输态,任意满足k>0的(0,k)都是必胜态。
假设结论一对0,……,a-1成立,而对a不成立,即对任意b,(a,b)为必胜态。那么存在取石子的方案(△a,△b)使得(a-△a,b-△b)为必输态,则△a>0,否则(a,b-△b)是必输态,与假设矛盾。那么a-△a<a,一定属于{0,1,......,a-1}。我们知道a-△a满足结论一,即存在唯一的b',使得(a-△a,b')为必输态。而对于{0,1,......,a-1}中的每一个数都是这样,所以这a个数最多能对应a个必输态。接下来注意△a与△b的关系:要么△a=△b要么△b=0。所以得到必输态(a-△a,b')的要么是(a,b'+△a)要么是(a,b')。那么a种必输态最多对应2a种必胜态。而我们假设:对任意b,(a,b)为必胜态。所以产生矛盾。所以“对于任意非负整数a,必存在非负整数b,使得(a,b)为必输态”得证。
再证明b的唯一性,若存在b1≠b2,使得(a,b1)和(a,b2)都是必输态,不妨设b1<b2,则有方案(b2-b1,0)使(a,b2)转移到(a,b1),与推论二矛盾。结论一得证。
结论二:对任意非负整数d,满足b-a=d的必输态(a,b)最多有一个(由于a,b具有对称性,常假定a<b)
反证:若有不同的必输态(a1,b1),(a2,b2),满足b1-a1=b2-a1=d;不妨设a1<a2;则存在方案(a2-a1,a2-a1)使(a2,b2)转移到(a1,b1),与推论二矛盾。结论二得证。
有了上面两个结论的思想,我们自然能想到一种构造第k个必输态的方法:
构造方法:1.首先观察得(0,0)是第0个必输态
2.取前面未出现过的的最小数字(这里是1)做为a
3.取a+k做为b(这里是2),(a,b)是第k个必输态
接下来,解释一下步骤2和3。由结论一知,每个非负整数对应唯一的必输态,所以我们从小到大地选取a;由结论二知,任何d最多对应一个必输态,所以让b=a+k,即b-a=k,这样不会与其他状态的d重合
下证结论三:
结论三:上述构造方法是正确的,即按照这样的方法取出的状态都是必输态:
证:设第k个必输态为(ak,bk),那么a0=0,b0=0,我们知道(a0,b0)是必输态。用数学归纳法,若结论三对0,……,k-1成立,证明对k也成立。也就是证明(ak,bk)不能通过任何何方式转移到其他必输态。
首先,由构造方法第二条易知ak是单调递增的即a0<a1<a2......,所以bk也是单调递增的。所以(ak,bk)只可能转移到它之前的状态,即(a0,b0),(a1,b1)...(ak-1,bk-1)。
接下来证明(ak,bk)不可能转移到它之前的状态。设取石子的方案为(△a,△b),分三种情况讨论:
1.△a=0,因为ak在前面的必输态中未出现过,所以不能转移到必输态
2.△b=0,因为ak,bk单调递增,且bk>ak,所以bk比所有前面状态中出现过的数字都大,即bk在前面的必输态中未出现过,所以不能转移到必输态
3.△a≠0且△b≠0,那么△a=△b。所以(b-△b)-(a-△a)=k,不可能与前面的必输态相同
所以,(ak,bk)不能转移到必输态,它就是必输态!!!
进一步还有结论四:
结论四:该构造方法可以取到所有必输态
证:因为每次都取之前未出现过的最小数做为a,保证了每个数字都会出现。又由结论一知道,每个数字仅属于一个方案,所以该构造方法可以取到所有必输态。
到这里,好像证完了,但是别忘了,我们最初做了一个假设:对于游戏开始时的任何一种状态(a,b),它要么是必胜态,要么是必输态,我们之前的一切证明是基于这个假设的,现在我要基于我们上面的构造方案证明这个假设是正确的。
结论五:任何一个状态,若不是必输态,则一定是必胜态
其实我们只要做证明,任何一个状态(a,b),若它不是必输态,则有一种合法的方案(△a,△b)将它转化为必输态。
证:设(a,b)不是必输态(为了方便,不妨设a<b),由结论一知:存在必输态(ak,bk)使ak=a,bk≠b。
1.若bk<b,则方案(0,b-bk)可以将(a,b)转为(ak,bk)
2.若bk>b,设b-a=s,则:s<bk-a=bk-ak=k
因为bs-as=s=b-a,所以b-bs=a-as
所以方案(a-as,b-bs)可以将(a,b)转为(as,bs)
结论五得证。
到此,证明结束。