# 標準無偏賽局與
# SG value
----
## 先來看一下名詞定義
----
### 組合賽局
1. 兩位玩家對戰,輪流操作
2. 資訊是完整公開的
3. 沒有任何機率因素
4. 結果可由一贏一輸或平手來表示
栗子(? :圈圈叉叉、西洋棋、大部分的棋
不是栗子:大富翁(機率),撲克牌(不透明)
----
### 各種組合賽局
- 標準:輪到該回合時,無法操作者輸
- 匱乏:輪到該回合時,無法操作者贏
- 無偏:同個盤面下,雙方可做的操作相同
- 有偏:同個盤面下,雙方可做的操作可能不同
不難想像,標準及匱乏必然是一勝一負
----
### 簡單的小遊戲
一條數線上有 $10$ 個正整數點
一開始有一個棋子放在 $1$ 號點上
雙方輪流移動同個棋子
每次可往前 $1$ 或 $2$ 步
先走到 $10$ 就贏了,不能超出範圍
#### 這是哪種賽局?(標準 or 匱乏 , 無偏 or 有偏)
----
### 簡單的小遊戲 2.0
一條數線上有 $10$ 個正整數點
一開始有一個棋子放在 $1$ 號點上
雙方輪流移動同個棋子
先手每次可往前 $1$ 或 $2$ 步
後手每次可往前 $3$ 或 $4$ 步
先走到 $10$ 就輸了,不能超出範圍
#### 這是哪種賽局?(標準 or 匱乏 , 無偏 or 有偏)
----
### 標準無偏賽局
由以上我們可以整理出幾個性質
1. 由於是無偏賽局,決勝因素即是先後手
2. 由於是標準賽局,勝者不是先手就是後手
(好像是廢話
於是我們可以將標準無偏賽局分為
1. $N$:先手獲勝
2. $P$:後手獲勝
### 這兩個代號很重要喔!!!
---
## 一些理論基礎
以下內容中,我們討論的都是標準賽局
----
### 賽局和
兩個賽局 $G1$ , $G2$ 的和,表示為 $G1+G2$
其實就是,把兩個遊戲擺在一起玩,
一次選一個遊戲並做一個操作
----
### 等價賽局定義
兩個賽局 $G1$ , $G2$ , 若對於所有賽局 $H$,皆滿足:
$G1+H$ 和 $G2+H$ 的型別相同( $N$ 或 $P$ )
則稱 $G1$ 與 $G2$ 等價 ,表示為 $G1=G2$
---
## 一些定理
----
### 定理 1
#### 如果 $G1=G2$ , $G1$ 與 $G2$ 型別相同
這是不是很像廢話 XD
----
### 定理 2
#### 如果 $G2$ 的型別是 $P$ , $G1+G2=G1$
這個定理的意思是,任一賽局加 $P$ 賽局等於沒有加
想像一下,在 $G1$ 原本會贏的玩家,可以一直維持
1. 對手一玩 $G2$ 就跟著玩,讓自己變成後手
2. 否則就專心玩 $G1$
### 於是勝負不變
----
### 精美的圖圖
![](https://i.imgur.com/KxNteOU.png)
----
![](https://i.imgur.com/Z2Q5Qgx.png)
----
![](https://i.imgur.com/35Vs9is.png)
----
### 所以在左邊會贏的傢伙就還是會贏!!!
----
### 定理 3
#### 如果 $G1$ , $G2$ 的型別都是 $P$ , $G1=G2$
這個定理告訴我們,所有的 $P$ 賽局都是同一種
### 證明:
對於任一賽局 $H$ 都滿足 $H+G1=H=H+G2$
根據等價賽局的定義, $G1=G2$
---
## 進入正題
對沒錯,剛剛都只是先備知識而已
---
### 經典遊戲 Nim
有 $N$ 堆石頭 ,每堆有 $a_1$ , $a_2$ , $a_3$ , $...$ , $a_N$ 顆
兩人輪流執行以下操作:
每次從其中一堆拿走任意多但至少一顆的石頭,
無法拿的人就輸了,請問先手必勝還是後手必勝?
----
### 直接講結論啦!
----
### 哈哈騙你的
----
### [Bitwise Operation](https://hackmd.io/@Paul-Liao/rJve8AY7t#/)
### [位元運算](https://hackmd.io/@Paul-Liao/rJve8AY7t#/)
----
### 現在才要講結論啦 !
定義一個特徵值 $X$
$X=a_1\oplus a_2\oplus a_3\oplus ... \oplus a_N$
那個像龜殼的符號是 Bitwise-XOR
(還有人不知道這是什麼嗎?
> $1\oplus0=0\oplus1=1$
> $1\oplus1=0\oplus0=0$
----
### 定理 4
#### 此遊戲先手必勝若且唯若 $X\neq0$
#### 後手必勝若且唯若 $X=0$
----
### 證明
1. 首先,結束盤面 $X=0$( 每一項都是 $0$ )
2. $X=0$ 的盤面無法走到其他 $X=0$ 的盤面
假設將原本有 $a_i$ 顆的第 $i$ 堆拿成 $a_i'$ 顆
特徵值變成 $X'$ , $X'=X\oplus a_i \oplus a_i'$
因為 $a_i\neq a_i'$,所以 $X'\neq X=0$
----
### 為什麼 $X'=X\oplus a_i\oplus a_i'$
假設原本的 $X=a_j\oplus a_k\oplus a_l\oplus a_i$
因為 $a_i\oplus a_i=0$ (每一位都會相同)
所以 $X\oplus a_i=a_j\oplus a_k\oplus a_l$(去掉 $a_i$ 了)
$a_j\oplus a_k\oplus a_l\oplus a_i'=X\oplus a_i\oplus a_i'=X'$
----
3. $X\neq 0$ 的盤面必可以走到一個 $X=0$ 的盤面
將 $X$ 寫成二進制,設其最高位為 $2^k$ 的那一位
在 $N$ 堆中必有一堆 $a_i$ 在二進制下的第 $k$ 位為 $1$
將那堆的數量拿成 $a_i'=a_i \oplus X$
由於 $k$ 是 $X$ 的最高位,因此 $a_i'<a_i$
特徵值變為 $X'=X\oplus a_i\oplus a_i'=0$
----
### 哈哈我知道沒人聽得懂
### 看個栗子 ~
假設現在有 $5$ 堆,數量分別為
$2$ , $5$ , $7$ , $9$ , $6$ -> $X=15$
換成二進制後 $X=1111$ ,
最高位 $2^k,k=3$ 也就是最左邊的那一位
----
在五個數中
我們發現 $9$ 的二進位 $1001$ 在第 $k$ 位為 $1$
於是將 $9$ 拿成 $9\oplus 15=6$
寫成二進位就是
```
1 0 0 1 = 9
1 1 1 1 = 15
--------------> XOR
0 1 1 0 = 6
```
----
### 新的 $X$ 值就是
### $2\oplus 5 \oplus 7\oplus 6 \oplus 6=0$
----
## 上面那些可以幹嘛
假設現在 $X\neq 0$ ,每一輪中:
1. 先手把 $X$ 變成 $0$
2. 後手把 $X$ 變成不是 $0$
----
### 最後必是後手面臨結束盤面
### 因此先手必勝
---
## 另一個遊戲 Choose Nim
同樣有 $N$ 堆石頭 ,每堆有 $a_1$ , $a_2$ , $a_3$ , $...$ , $a_N$ 顆
先手選擇一堆石頭,設有 $a_i$ 顆,
接著就變成只有一堆且數量為 $a_i$ 顆的 Nim 遊戲
----
### 定理 5
#### 一個集合為 { $a_1$ , $a_2$ , $...$ , $a_N$ } 的 Choose Nim 遊戲
#### 等價於一個僅有一堆數量為
#### MEX( { $a_1$ , $a_2$ , $...$ , $a_N$ } ) 的 Nim 遊戲
MEX 就是,在一個非負整數集合中,
沒有出現的最小非負整數
栗子:MEX( { $0$ , $1$ , $2$ , $4$ } ) $=3$
MEX( { $1$ , $2$ , $4$ } ) $=0$
----
### 聽起來是玄學
可以醬想,一個僅有一堆 $i$ 顆的 Nim 遊戲
在先手操作了一次後
不就變成了 $0$ ~ $(i-1)$ 顆的 Nim遊戲嗎
剛好符合了 Choose Nim 遊戲的規則
----
### 先手不會選數量大於 MEX 的嗎?
一堆的 Nim 遊戲,只要不是 0 顆都是先手必勝
換句話說, Choose Nim 遊戲中,
先手應會選盡量小的堆,因此不用考慮大於 MEX 的
---
## SG value
哈哈終於要講 SG value 了
----
### Sprague-Grundy Theorem
#### 任何標準無偏賽局,皆可以轉換成一堆 Nim 遊戲
#### 我們將這個 Nim 遊戲的堆的大小,定義為 SG value
----
### 為什麼可以醬!!!
簡單來說,我們把結束狀態的 SG value 設為 0
再通過定理 5 ( MEX 那個 ),求出整個遊戲的 SG value
每個狀態的 SG value 即是
### 所有可以轉移到的狀態的 MEX
---
### 又双叒叕是栗子
一條數線上有 $10$ 個正整數點
一開始有一個棋子放在 $1$ 號點上
雙方輪流移動同個棋子
每次可往前 $1$ 或 $2$ 步
先走到 $10$ 就贏了,不能超出範圍
沒錯就是一開始的那個簡單的小遊戲
----
因為每次只能往前 $1$ 或 $2$ 格
所以這個遊戲中
$SG(i)=$ MEX( { $SG(i+1)$ , $SG(i+2)$ } )
----
### step 1
設 $SG(10)=0$ ,
也就是說,從 $10$ 開始,後手必勝 ( P 型別 )
### step 2
$SG(9)=$ MEX( { $0$ } ) $=1$
也就是說,從 $9$ 開始,先手必勝 ( N 型別 )
----
### step 3
$SG(8)=$ MEX( { $0$ , $1$ } ) $=2$
也就是說,從 $8$ 開始,先手必勝 ( N 型別 )
### step 4
$SG(7)=$ MEX( { $1$ , $2$ } ) $=0$
也就是說,從 $7$ 開始,後手必勝 ( P 型別 )
----
### 快轉... 快轉...
現在我們已經知道 $SG(4)=0$ , $SG(3)=1$
----
### step 8
$SG(2)=$ MEX( { $0$ , $1$ } ) $=2$
也就是說,從 $2$ 開始,先手必勝 ( N 型別 )
### step 9
$SG(1)=$ MEX( { $1$ , $2$ } ) $=0$
也就是說,從 $1$ 開始,後手必勝 ( P 型別 )
----
### 於是乎
### 我們知道這是一個後手必勝的遊戲