自認為sg函數應該算是博弈論中比較經典的東西了。。他幾乎可以解決博弈論中的所有問題。你可以將sg函數看作是一個深搜的的過程。而每一堆的石子就相當於圖中間的節點。所以說整個sg函數的過程就是在對一個有向無環圖進行dfs的過程。
sg函數的具體內容可以用一個公式來表示(雖然我最不喜歡公式,不過我還是得寫。不然這沒法說清楚):sg(x) =mex{sg(y) : y ∈ F(x)}。其中{}內的是一個集合(只要上過高中都應該知道吧),在:右邊的是該集合元素所滿足的條件。sg(y)為該元素的值(其實就是一個遞歸的過程)。重點來了。。mex()函數表示是不在該集合中的最小的非負整數的值。比如mex({1,2,3})=0...mex({0,2,4})=1...mex({})=0..最后得出來的結果中。為0為必敗點,不為零必勝點。。吊把·~~~
接下來才是sg函數精妙之處了。假如說是在一個游戲中有多個石子堆該怎么辦了。我們只需要把對每個石子堆進行sg函數的調用,將得到的所有的值進行異或。得出來的結果為0則該情形為必敗態。否則為必勝態。。
碉堡了的說。。。
2012.9.7ps:F(x)貌似是該狀態可以達到的狀態。。當初忘記寫了。。