SG函式學習總結

2021-07-24 15:49:44 字數 947 閱讀 2861

有點散亂, 將就著看吧.

首先是博弈論的基礎, 即 n 和 p 兩種狀態: n 為必勝狀態, p 為必敗狀態.

對於n, p兩種狀態, 則有

1. 沒有任何合法操作的狀態, p;

2. 可以移動到p局面的情況為n狀態;

3. 可以移動到的所有狀態均為n狀態, 則當前情況為p狀態.

然後就可以引入sg函式了.

首先定義mex運算, 這是施加於乙個集合的運算, 表示最小的不屬於這個集合的非負整數。

for instance,

mex = 3、mex = 0、mex{} = 0。

對於乙個給定的有向無環圖, 定義關於圖的每個頂點的sprague-grundy函式g如下:g(x) = mex, 這裡的g(x)即

sg[x]。

例如:取石子問題, 有1堆n個的石子, 每次只能取個石子, 先取完石子者勝利, 那麼各個數的sg值為多少?

sg[0] = 0, f = ,

x = 1時, 可以取走1-f個石子, 剩餘個, mex = , 故sg[1] = 1;

x = 2時, 可以取走2-f個石子, 剩餘個, mex = , 故sg[2] = 0;

x = 3時, 可以取走3-f個石子, 剩餘個, mex = , 故sg[3] = 1;

x = 4時, 可以取走4-f個石子, 剩餘個, mex = , 故sg[4] = 2;

x = 5時, 可以取走5-f個石子, 剩餘個, mex = , 故sg[5] = 3;

以此類推…..

x   0   1   2   3   4   5   6   7   8

sg 0 1 0 1 2 3 2 0 1

這裡的sg函式與上面提到的n, p兩種狀態實際上是吻合的, 當 sg[i] == 0 時, 處於p狀態; 否則處於n狀態.

數學 nim博弈 SG函式

若乙個遊戲滿足 由兩名玩家交替行動 在遊戲程序的任意時刻,可以執行的合法行動與輪到哪名玩家無關 不能行動的玩家判負 則稱該遊戲為乙個公平組合遊戲。nim博弈屬於公平組合遊戲,但城建的棋類遊戲,比如圍棋,就不是公平組合遊戲。因為圍棋交戰雙方分別只能落黑子和白子,勝負判定也比較複雜,不滿足條件2和條件3...

BZOJ1188 SG函式學習小記

sg函式用來求博弈過程中某一情況下是先手必敗 p position 還是先手必勝 n position 性質 所有的先手必敗 p position 當且僅當 sg 0 所有的先手必勝 n position 當且僅當 sg 0 結束局面 t position sg 0 可以理解為無法繼續操作了所以先手...

函式學習總結

1.為什麼定義函式,使用函式 在程式的設計過程中,會在許多地方出現想同的 為了減少 數量,讓程式變得更加美觀,此時可以將這段程式單獨作為乙個整體,並用識別符號起乙個名字,當時使用時,直接呼叫函式名即可。這段程式叫作子程式,就是我們所說的函式。2.函式的定義 1 定義的語法形式 資料型別 函式名 形式...