無偏賽局:可進行的操作只和當前狀態有關,與哪個玩家行動無關
無環賽局:即使在一個人可連續操作多次的情況下,賽局仍然會在有限次結束
標準賽局:無法操作者被判輸
匱乏賽局:無法操作者被判贏
其他賽局:例如圈圈叉叉
在任意的組合賽局中,以下三種情形必有一個發生
由於是無環賽局,代表假設畫出 game graph,他會是個有向無環圖
而標準賽局的定義告訴我們最後不會出現平局
因此平局的兩種可能 (賽局定義的、出現循環) 都不可能存在,所以這代表對於一個標準無環賽局,賽局終點都不可能存在平局
亦即不是先手有必勝策略就是後手有必勝策略
以下討論無偏無環標準賽局
N: 先手必勝
P: 後手必勝
N:存在一個可以轉移到的盤面是 P
P:所有可以轉移到的盤面都是N
有一塊 n*m 的巧克力,每次選擇一條格線把巧克力剖成兩半,不能操作的玩家就輸了
桌上有 2022 個容量為 200 毫升的奶瓶,A 跟 B輪流選擇做以下其中一個操作:
1. 選擇一個裝有多餘 100 毫升的奶瓶,並喝掉一半
2. 選擇兩個裝有不超過 100 毫升的奶瓶,把他們倒成一瓶並把空瓶丟掉
一開始所有瓶子都是裝著 30 毫升的奶瓶,求最後誰會獲勝
給你 \(n\) 堆石頭,每堆分別有 \(a_i\) 顆,兩個人輪流操作,每次可以選擇一堆石頭拿走 \(\geq 1\) 顆,不能取的輸,問誰有必勝策略
直接講結論:把 \( a_i\) xor 起來 (稱為特徵值),如果是 0 就代表是後手必勝,反之先手必勝
N:存在一個可以轉移到的盤面是 P
P:所有可以轉移到的盤面都是 N
P 只會轉到 N:每次操作會恰好改變一個數,亦即會改變特徵值
N 可以轉到 P:考慮特徵值的最高位
必定存在一個 \(a_i\) 滿足 \(a_i\) 的這個 bit 是 1
將他拿至剩 \(a_i\) \( \oplus\) 特徵值 即可
假設有兩個賽局 \(G_1\) 與 \(G_2\)
定義 \( G_1 + G_2 \) 表示:雙方輪流選擇操作,每次的操作是選擇一個賽局 \( \in \{G_1,G_2\} \) ,然後做原本那個賽局的合法操作
為什麼無環操作要這樣定義?
現在在「選一個賽局」之下,就不再是雙方輪流操作了
定義兩個賽局 \( G_1, G_2 \) 等價為
無論 \(H\) 是何賽局,\( G_1 + H \) 與 \( G_2 + H\) 的型別皆相同
記做 \( G_1 = G_2\)
1. 跟 2. 都可以直觀理解,只證 3.
對任意賽局 \(H\),\(H+G_1 = H = H+G_2\)
根據等價關係,\(G_1 = G_2\)
定理:所有特徵值相同的 Nim 等價
證明:只需要注意到 \(G+G = 0\)
並且要是 \(G\) 與 \(H\) 特徵值相同那麼 \(G+H=0\)
\(H=H+(G+G)=(H+G)+G=G\)
欲證:每個標準無偏無環賽局都可以對應到一個 Nim 遊戲,意即都有一個特徵值
這個特徵值叫做 SG\((G)\)
決定 SG\((G)\) 的方法是枚舉下一步可能的賽局,將他們的特徵值取 mex
\(G+H\) 的特徵值就是 SG\((G)\) \(\oplus\) SG\((H)\)
最小的不屬於集合中的非負整數
證明:假設 \(G\) 的 SG value 為 x
賽局 \(H\) 為一堆剛好有 x 個石頭的 Nim
只需證 \(G+H=0\) 即可,也就是後手在 \(G+H\) 必勝
考慮對 Game graph 從後往前歸納
假設先手動了 \(G\) 並且把它的特徵值改小,那後手可以把 \(H\) 的特徵值也改小,使 \(G'+H'\) 為 0
假設先手動了 \(G\) 並且把它的特徵值改大,那後手可以把新的 \(G\) 的特徵值改小,依舊使 \(G'+H'\) 為 0
假設先手動了 \(H\) 則會把它的特徵值改小,那後手可以把 \(G\) 的特徵值改小,依舊使 \(G'+H'\) 為 0
跟 SG value 的一些有趣的點
給你很多堆東西(分別有 \(a_i\) 個),你能做的操作是選擇一堆,把它分成大小不等且不為 0 的兩堆,不能操作者輸,問你誰贏
\(SG(n) = mex(\{SG(i) \oplus SG(n-i)\mid 1\leq i\leq \frac{n-1}{2}\})\)
兩個人在一個 1*n 的方格表上輪流塗色,規定不能塗已經塗過的格子也不能塗與已經塗過的格子相鄰的格子,問誰獲勝
\(SG(n) = mex(\{SG(0) \oplus SG(n-2)\} \cup \{SG(i) \oplus SG(n-2-i) \mid 1 \leq i \leq n-3\})\)
但好像數競不常用(?
跟 SG value 不一定有關喔
椒華和幾何大俠在玩遊戲,首先椒華選一個不大於 32719 的正整數,接著幾何大俠與椒華輪流選一個比對方上次選的數還小的正整數,直到有人選到 1,將所有被選過的數加在一起,若此總和為完全平方數,則選到 1 的人獲勝,否則另一人獲勝,試求所有 n 使得椒華一開始選 n 時能有必勝策略