題目要求:有兩堆物品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態。