碰到一个数学游戏:有9根火柴,两人轮流取,每次可取1根或2根或3根,火柴取完后,取得总数为偶数者胜。
在把这个问题搞清楚后(这个问题是后手必胜),我在想,能不能研究一般情况?即对任意多根火柴,应该如何研究?结论如何?为此,进行了如下研究:
定义两个符合A(i)和B(i)分别用来表示对于i根火柴而言,先手最后能否取得奇数根和偶数根,具体的说,如果对于i根火柴,按上述要求取,先手有办法保证最后能取得奇数根,则A(i)=1,反之,A(i)=0,而如果对于i根火柴,按上述要求取,先手有办法保证最后能取得偶数根,则B(i)=1,反之,B(i)=0。
显然有:
A
(1)=1B
(1)=0即对1根,先手可以保证取得奇数根,但不能取到偶数根。
A
(2)=1B
(2)=1即对2根,先手可以保证取得奇数根(取1),也能取到偶数根(取2)
A
(3)=1B
(3)=1即对2根,先手可以保证取得奇数根(取3),也能取到偶数根(取2)
对于4根而言,先手取掉一轮后,根据所取根数不同,总会变成1根或2根或3根的状态,先手4根想取得奇数根,必须在这三种状态中找到一种使对方取不到偶数的状态。由B
(1)=0知,这种状态是存在的,于是先手四根只要取掉三根,对手面临1根的情况,而B
(1)=0,这种状态下对方无法取得偶数,从而先手4根必可取得奇数根,即A
(4)=1。下面考虑B
(4),即先手4根能否取到偶数,取决于对手能否取得奇数,同样,先手四根取一轮后,也会变成1根或2根或3根的情况,而A
(1)A
(2)A
(3)均取1,无论先手四根变成取1或2或3,后手均可取得奇数根,这样先手四根也只能取奇数根,于是B
(4)=0。
以上分析对于i是偶数的情况是通用的,即对于任意大于2的偶数i,如果B(i-1),B(i-2),B(i-3)中有一个取0,那么A(i)=1,否则,A(i)=0.而对于任意大于2的偶数i,如果A(i-1),A(i-2),A(i-3)中有一个取0,那么B(i)=1,否则,B(i)=0.
我们可以分析一下A
(5)的情况,先手取一轮后,必变成2根或3根或4根的情况,由于5是奇数,先手要想取到奇数根,必让对手取不到奇数根,而A
(2),A
(3),A
(4)均等于1,即无论先手5将局面变成哪种情况,后手都可以取到奇数根,从而先手5不能保证取到奇数根,即A
(5)=0。同样的分析,B
(5)=1
以上分析对于所有的奇数是通用的。即对于任意大于3的奇数i,如果A(i-1),A(i-2),A(i-3)中有一个取0,则A(i)=1,否则,A(i)=0。而对于任意大于3的奇数i,如果B(i-1),B(i-2),B(i-3)中有一个取0,那么B(i)=1,否则,B(i)=0.
有了以上分析,不难得出以下结论:
A
(1)=1B
(1)=0
A
(2)=1B
(2)=1
A
(3)=1B
(3)=1
A
(4)=1B
(4)=0
A
(5)=0B
(5)=1
A
(6)=1B
(6)=1
A
(7)=1B
(7)=1
A
(8)=0B
(8)=1
A
(9)=1B
(9)=0(这个结论就表示对9根而言,先手无法保证取到偶数,即原题中后手胜)
继续往下写,可以发现,以上取值情况以8为周期循环。这样,这个问题就得到了解决。