Ferguson Game

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章