見出し画像

石取りゲームにおける『グランディ数』及び、そこに潜む『未解決問題』を、中学・高校生にも分かるように解説!

 『石取りゲーム』というのがあります。なおこのゲームは、ニコニコ生放送 『MATH POWER 2022』という番組内で紹介されたゲームで、このゲームに潜む未解決問題に、二日かけて徹夜で挑むぶっ通し企画で登場します。

なおこの記事は、MATH POWER の HP

にある説明文を参照しています。それではこのゲームの解説です。

1.『石取りゲーム』について

 ある一定数の石が目の前にあります。

石の数は、ゲームが成立するだけの数を自由に選ぶことができます。2人で交互にその石を取っていくのですが、取り方のルールとして
 ①1個取る、②2個取る、③3個取る
の3通りの石の取り方があります。その都度いずれかの方法を自由に選んで交互に石を取っていき、最後に石を取った方が勝ち、となるゲームです。
 例えば、目の前に13個の石があったとします。相手が先手だとすると

最初 ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫⑬
相手 3個取る $${\rightarrow}$$ 残りの石は10個
   ①②➂④⑤⑥➆⑧⑨⑩
自分 2個とる $${\rightarrow}$$ 残りの石は8個
   ①②➂④⑤⑥➆⑧
相手 1個取る $${\rightarrow}$$ 残りの石は7個
   ①②➂④⑤⑥➆
自分 3個取る $${\rightarrow}$$ 残りの石は4個
   ①②➂④
相手 2個取る $${\rightarrow}$$ 残りの石は2個
   ①②
自分 2個取る $${\rightarrow}$$ 残りの石は0個

となれば、最後に石を取った自分の勝ちとなります。
 このゲームには必勝法がありまして、「残りの石の個数が4の倍数」となるように石を取っていけば必ず勝ちになります。例えば、先ほどの例で言うと

最初 ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫⑬
相手 3個取る $${\rightarrow}$$ 残りの石は10個
   ①②➂④⑤⑥➆⑧⑨⑩
自分 2個とる $${\rightarrow}$$ 残りの石は8個(4の倍数)
   ①②➂④⑤⑥➆⑧
相手 1個取る $${\rightarrow}$$ 残りの石は7個
   ①②➂④⑤⑥➆
自分 3個取る $${\rightarrow}$$ 残りの石は4個(4の倍数)
   ①②➂④
相手 2個取る $${\rightarrow}$$ 残りの石は2個
   ①②
自分 2個取る $${\rightarrow}$$ 残りの石は0個

と、残りの石の個数が4の倍数になるように石を取っていく、逆に言えば、石の個数が4の倍数になる局面を常に相手に提示していくわけです。
 なお、自分の手番で石の個数が4の倍数になったときは、相手の手番で4の倍数になるよう途中で調整していきます。例えば次のような場合です。

最初 ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫⑬
相手 1個取る $${\rightarrow}$$ 残りの石は12個
   ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫
   $${\rightarrow}$$ 自分に4の倍数を提示されても
自分 1個とる $${\rightarrow}$$ 残りの石は11個
   ①➁➂④⑤⑥➆⑧⑨⑩⑪
相手 2個取る $${\rightarrow}$$ 残りの石は9個
   ①➁➂④⑤⑥➆⑧⑨
自分 1個取る $${\rightarrow}$$ 残りの石は8個(4の倍数)
   ①➁➂④⑤⑥➆⑧
   $${\rightarrow}$$ 4の倍数が発生、後はこれをキープ
相手 3個取る $${\rightarrow}$$ 残りの石は5個
   ①➁➂④⑤
自分 1個取る $${\rightarrow}$$ 残りの石は4個(4の倍数)
   ①➁➂④
相手 2個取る $${\rightarrow}$$ 残りの石は2個
   ①➁
自分 2個取る $${\rightarrow}$$ 残りの石は0個

となれば、やはり最後に石を取った自分の勝ちとなります。結局、残りの石の個数が「4個」の局面を相手に提示できれば

相手が1個取ると、自分は残りの3個すべてを取って自分の勝ち
相手が2個取ると、自分は残りの2個すべてを取って自分の勝ち
相手が3個取ると、自分は残りの1個すべてを取って自分の勝ち

と、自分に勝ちが必ず訪れる仕組みです。残りの石の個数が4の倍数となる局面を、最後までキープし続けていけばよいわけです。

2.石取りゲームを拡張する

 さて、このゲームを拡張します。取れる石の数を変化させます。先の例では
 ①1個取る、②2個取る、③3個取る
でしたが、このときは「残りの石の個数が4の倍数」になるように石をとれば勝ちでした。これを例えば
 ①2個取る、②3個取る
または
 ①2個取る、②4個取る、③7個取る
というふうに、取り方のルールを自由に変えていった場合、勝ちパターンはどのように変化するでしょうか。ちなみに
 ①2個取る、②3個取る
のルールだと「5の倍数をキープしていけば勝ち」となります。例えば、仮に石の数が19個、相手が先手だとすると

最初 ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲
相手 3個取る $${\rightarrow}$$ 残りの石は16個
   ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫⑬⑭⑮⑯
自分 2個とる $${\rightarrow}$$ 残りの石は14個
   ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫⑬⑭
相手 1個取る $${\rightarrow}$$ 残りの石は13個
   ①➁➂④⑤⑥➆⑧⑨⑩⑪⑫⑬
自分 3個取る $${\rightarrow}$$ 残りの石は10個(5の倍数)
   ①➁➂④⑤⑥➆⑧⑨⑩
   $${\rightarrow}$$ ここで5の倍数が発生、後はこれをキープ
相手 3個取る $${\rightarrow}$$ 残りの石は7個
   ①➁➂④⑤⑥➆
自分 2個取る $${\rightarrow}$$ 残りの石は5個(5の倍数)
   ①➁➂④⑤
相手 2個取る $${\rightarrow}$$ 残りの石は3個
   ①➁➂
自分 3個取る $${\rightarrow}$$ 残りの石は0個

と、最後に石を取った自分の勝ちとなります。①2個取る、②3個取る
のルールだと「5の倍数をキープしていけば勝ち」となるわけです(注1)

3.『グランディ数』について

 ここで、あらゆる石の取り方(ルール)において、どういうときに必勝形になるかについては、次の『グランディ数』というのが役立ちます。

『グランディ数』の定義
1.終了局面のグランディ数は0とする。
2.他の局面は、1手で移行できる局面すべてのグランディ数について、その値すべてを0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ から除いたときの最小の値が、その局面のグランディ数である。

 ではこの定義をもとに、具体的にグランディ数を求めてみましょう。手始めに最初に上げたルール、石の取り方が
 ①1個取る、②2個取る、③3個取る
のときのグランディ数を求めてみます。グランディ数はある石の取り方(ルール)において、残った石の個数の局面それぞれについて決定されます。既知となった前の局面のグランディ数を用いて、今現在の局面のグランディ数が決定されます。具合的に求めてみます。

<石が0個の局面のグランディ数>
$${\rightarrow}$$ 終了局面なので定義よりグランディ数は0と決定・・・$${(*0)}$$

<石が1個の局面のグランディ数>
 このときの一手で移行できる局面は、石を1個取った「石が0個の局面」のみ。 ① $${\rightarrow}$$0個
$${\rightarrow}$$ 石を1個取る
$${\rightarrow}$$ 石が0個の局面
$${\rightarrow}$$ 石が0個の局面のグランディ数は、$${(*0)}$$ より0
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0を除く
$${\rightarrow}$$ その集合は $${\{\underline{1},  2,  3,  \cdots\}}$$ となる
$${\rightarrow}$$ この集合の要素のうち最小の整数は1(下線部)
$${\rightarrow}$$ よって、石が1個の局面のグランディ数は1と決定・・・$${(*1)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c}
局面の石の数 & 0 & 1\\
\hline
グランディ数 & 0 & 1
\end{array}
$$

となります。

<石が2個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を1個取った「石が1個の局面」
     ①➁ $${\rightarrow}$$ ①
(case2) 石を2個取った「石が0個の局面」
     ①➁ $${\rightarrow}$$0個
の2局面。

(case1)
$${\rightarrow}$$ 石を1個取る
$${\rightarrow}$$ 石が1個の局面
$${\rightarrow}$$ 石が1個の局面のグランディ数は、$${(*1)}$$ より1

(case2)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が0個の局面
$${\rightarrow}$$ 石が0個の局面のグランディ数は、$${(*0)}$$ より0

(case1~2) より
$${\rightarrow}$$ 石が2個の局面から1手で移行できる局面のグランディ数は0と1
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0と1を除く
$${\rightarrow}$$ その集合は $${\{\underline{2},  3,  4,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は2(下線部)
$${\rightarrow}$$ よって、石が2個の局面のグランディ数は2と決定・・・$${(*2)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c}
局面の石の数 & 0 & 1 & 2\\
\hline
グランディ数 & 0 & 1 & 2
\end{array}
$$

となります。

<石が3個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を1個取った「石が2個の局面」
     ①➁➂ $${\rightarrow}$$ ①➁
(case2) 石を2個取った「石が1個の局面」
     ①➁➂ $${\rightarrow}$$ ①
(case2) 石を3個取った「石が0個の局面」
     ①➁➂ $${\rightarrow}$$0個
の3局面。

(case1)
$${\rightarrow}$$ 石を1個取る
$${\rightarrow}$$ 石が2個の局面
$${\rightarrow}$$ 石が2個の局面のグランディ数は、$${(*2)}$$ より2

(case2)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が1個の局面
$${\rightarrow}$$ 石が1個の局面のグランディ数は、$${(*1)}$$ より1

(case3)
$${\rightarrow}$$ 石を3個取る
$${\rightarrow}$$ 石が0個の局面
$${\rightarrow}$$ 石が0個の局面のグランディ数は、$${(*0)}$$ より0

(case1~3) より
$${\rightarrow}$$ 石が3個の局面から1手で移行できる局面のグランディ数は0と1と2
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0と1と2を除く
$${\rightarrow}$$ その集合は $${\{3,  4,  5,  6,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は3
$${\rightarrow}$$ よって、石が3個の局面のグランディ数は3と決定・・・$${(*3)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3\\
\hline
グランディ数 & 0 & 1 & 2 & 3
\end{array}
$$

となります。

<石が4個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を1個取った「石が3個の局面」
     ①➁➂④ $${\rightarrow}$$ ①➁➂
(case2) 石を2個取った「石が2個の局面」
     ①➁➂④ $${\rightarrow}$$ ①➁
(case3) 石を3個取った「石が1個の局面」
     ①➁➂④ $${\rightarrow}$$ ①
の3局面。

(case1)
$${\rightarrow}$$ 石を1個取る
$${\rightarrow}$$ 石が3個の局面
$${\rightarrow}$$ 石が3個の局面のグランディ数は、$${(*3)}$$ より3

(case2)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が2個の局面
$${\rightarrow}$$ 石が2個の局面のグランディ数は、$${(*2)}$$ より2

(case3)
$${\rightarrow}$$ 石を3個取る
$${\rightarrow}$$ 石が1個の局面
$${\rightarrow}$$ 石が1個の局面のグランディ数は、$${(*1)}$$ より1

(case1~3) より
$${\rightarrow}$$ 石が4個の局面から1手で移行できる局面のグランディ数は1と2と3
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその1と2と3を除く
$${\rightarrow}$$ その集合は $${\{0,  4,  5,  6,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は0
$${\rightarrow}$$ よって、石が4個の局面のグランディ数は0と決定・・・$${(*4)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4\\
\hline
グランディ数 & 0 & 1 & 2 & 3 & 0
\end{array}
$$

となります。ここでグランディ数が0に戻りました。

<石が5個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を1個取った「石が4個の局面」
     ①➁➂④⑤ $${\rightarrow}$$ ①➁➂④
(case2) 石を2個取った「石が3個の局面」
     ①➁➂④⑤ $${\rightarrow}$$ ①➁➂
(case3) 石を3個取った「石が2個の局面」
     ①➁➂④⑤ $${\rightarrow}$$ ①➁
の3局面。

(case1)
$${\rightarrow}$$ 石を1個取る
$${\rightarrow}$$ 石が4個の局面
$${\rightarrow}$$ 石が4個の局面のグランディ数は、$${(*4)}$$ より0

(case2)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が3個の局面
$${\rightarrow}$$ 石が3個の局面のグランディ数は、$${(*3)}$$ より3

(case3)
$${\rightarrow}$$ 石を3個取る
$${\rightarrow}$$ 石が2個の局面
$${\rightarrow}$$ 石が2個の局面のグランディ数は、$${(*2)}$$ より2

(case1~3) より
$${\rightarrow}$$ 石が5個の局面から1手で移行できる局面のグランディ数は0と2と3
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0と2と3を除く
$${\rightarrow}$$ その集合は $${\{1,  4,  5,  6,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は1
$${\rightarrow}$$ よって、石が5個の局面のグランディ数は1と決定・・・$${(*5)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5\\
\hline
グランディ数 & 0 & 1 & 2 & 3 & 0 & 1
\end{array}
$$

となります。最初の「01」の並びに戻り、なにやら周期性が示唆されます。実際、石の取り方が
 ①1個取る、②2個取る、③3個取る
のときのグランディ数は、次のように決定されます。

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & \cdots\\
\hline
グランディ数 & 0 & 1 & 2 & 3 & 0 & 1 & 2 & 3 & 0 & 1 & 2 & 3 & 0 & \cdots
\end{array}
$$

グランディ数の並びを見ると、4つの数「0123」が周期的に現れることが見て取れます。

4.『グランディ数列』について

 このグランディ数の値の列
 $${\underline{0123}012301230123 \cdots}$$
を『グランディ数列』といいます。4つの数「$${0123}$$」(下線部)が周期的に現れるので、このグランディ数列の『周期は4』となります。

 では次に、石の取り方が
 ①2個取る、②3個取る
のときのグランディ数列を求めてみましょう。周期性が現れるでしょうか?

<石が0個の局面のグランディ数>
$${\rightarrow}$$ 終了局面なので定義よりグランディ数は0と決定・・・$${(*0)}$$

<石が1個の局面のグランディ数>
$${\rightarrow}$$ 終了局面なので定義よりグランディ数は0と決定・・・$${(*1)}$$
 石の取り方は「①2個取る、②3個取る」の2通りしかないので、残った1個の石は取れません。よってこの局面は終了局面となります。
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c}
局面の石の数 & 0 & 1\\
\hline
グランディ数 & 0 & 0
\end{array}
$$

となります。

<石が2個の局面のグランディ数>
 このときの1手で移行できる局面は、石を2個取った「石が0個の局面」のみ。①➁ $${\rightarrow}$$ 0個
$${\rightarrow}$$ 石が2個取れる
$${\rightarrow}$$ 石が0個の局面
$${\rightarrow}$$ 石が0個の局面のグランディ数は、$${(*0)}$$ より0
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0を除く
$${\rightarrow}$$ その集合は $${\{1,  2,  3,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の整数は1
$${\rightarrow}$$ よって、石が2個の局面のグランディ数は1と決定・・・$${(*2)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c}
局面の石の数 & 0 & 1 & 2\\
\hline
グランディ数 & 0 & 0 & 1
\end{array}
$$

となります。

<石が3個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を2個取った「石が1個の局面」
     ①➁➂ $${\rightarrow}$$ ①
(case2) 石を3個取った「石が0個の局面」
     ①➁➂ $${\rightarrow}$$ 0個
の2局面。

(case1)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が1個の局面
$${\rightarrow}$$ 石が1個の局面のグランディ数は、$${(*1)}$$ より0

(case2)
$${\rightarrow}$$ 石を3個取る
$${\rightarrow}$$ 石が0個の局面
$${\rightarrow}$$ 石が0個の局面のグランディ数は、$${(*2)}$$ より0

(case1~2) より
$${\rightarrow}$$ 石が3個の局面から1手で移行できる局面のグランディ数は0
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0を除く
$${\rightarrow}$$ その集合は $${\{1,  2,  3,  4,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は1
$${\rightarrow}$$ よって、石が3個の局面のグランディ数は1と決定・・・$${(*3)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3\\
\hline
グランディ数 & 0 & 0 & 1 & 1
\end{array}
$$

となります。

<石が4個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を2個取った「石が2個の局面」
     ①➁➂④ $${\rightarrow}$$ ①➁
(case2) 石を3個取った「石が1個の局面」
     ①➁➂④ $${\rightarrow}$$ ①
の2局面。

(case1)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が2個の局面
$${\rightarrow}$$ 石が2個の局面のグランディ数は、$${(*2)}$$ より1

(case2)
$${\rightarrow}$$ 石を3個取る
$${\rightarrow}$$ 石が1個の局面
$${\rightarrow}$$ 石が1個の局面のグランディ数は、$${(*1)}$$ より0

(case1~2) より
$${\rightarrow}$$ 石が4個の局面から1手で移行できる局面のグランディ数は0と1
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0と1を除く
$${\rightarrow}$$ その集合は $${\{2,  3,  4,  5,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は2
$${\rightarrow}$$ よって、石が4個の局面のグランディ数は2と決定・・・$${(*4)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4\\
\hline
グランディ数 & 0 & 0 & 1 & 1 & 2
\end{array}
$$

となります。

<石が5個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を2個取った「石が3個の局面」
     ①➁➂④⑤ $${\rightarrow}$$ ①➁➂
(case2) 石を3個取った「石が2個の局面」
     ①➁➂④⑤ $${\rightarrow}$$ ①➁
の2局面。

(case1)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が3個の局面
$${\rightarrow}$$ 石が3個の局面のグランディ数は、$${(*3)}$$ より1

(case2)
$${\rightarrow}$$ 石が3個取れる
$${\rightarrow}$$ 石が2個の局面
$${\rightarrow}$$ 石が2個の局面のグランディ数は、$${(*2)}$$ より1

(case1~2) より
$${\rightarrow}$$ 石が5個の局面から1手で移行できる局面のグランディ数は1
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその1を除く
$${\rightarrow}$$ その集合は $${\{0,  2,  3,  4,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は0
$${\rightarrow}$$ よって、石が5個の局面のグランディ数は0と決定・・・$${(*5)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5\\
\hline
グランディ数 & 0 & 0 & 1 & 1 & 2 & 0
\end{array}
$$

となります。ここでグランディ数が最初の0に戻りました。周期性を匂わせます。

<石が6個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を2個取った「石が4個の局面」
     ①➁➂④⑤⑥ $${\rightarrow}$$ ①➁➂④
(case2) 石を3個取った「石が3個の局面」
     ①➁➂④⑤⑥ $${\rightarrow}$$ ①➁➂
の2局面。

(case1)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が4個の局面
$${\rightarrow}$$ 石が4個の局面のグランディ数は、$${(*4)}$$ より2

(case2)
$${\rightarrow}$$ 石を3個取る
$${\rightarrow}$$ 石が3個の局面
$${\rightarrow}$$ 石が3個の局面のグランディ数は、$${(*3)}$$ より1

(case1~2) より
$${\rightarrow}$$ 石が6個の局面から1手で移行できる局面のグランディ数は1と2
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその1と2を除く
$${\rightarrow}$$ その集合は $${\{0,  3,  4,  5,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は0
$${\rightarrow}$$ よって、石が6個の局面のグランディ数は0と決定・・・$${(*6)}$$
 ここまでのグランディ数の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5 & 6\\
\hline
グランディ数 & 0 & 0 & 1 & 1 & 2 & 0 & 0
\end{array}
$$

となり、数列が「00」と初めと同じ並びが現れました。

<石が7個の局面のグランディ数>
 このときの1手で移行できる局面は
(case1) 石を2個取った「石が5個の局面」
(case2) 石を3個取った「石が4個の局面」
の2局面。

(case1)
$${\rightarrow}$$ 石を2個取る
$${\rightarrow}$$ 石が5個の局面
$${\rightarrow}$$ 石が5個の局面のグランディ数は、$${(*5)}$$ より0

(case2)
$${\rightarrow}$$ 石を3個取る
$${\rightarrow}$$ 石が4個の局面
$${\rightarrow}$$ 石が4個の局面のグランディ数は、$${(*4)}$$ より2

(case1~2) より
$${\rightarrow}$$ 石が7個の局面から1手で移行できる局面のグランディ数は0と2
$${\rightarrow}$$ 0以上の整数の集合 $${\{0,  1,  2,  3,  \cdots\}}$$ からその0と2を除く
$${\rightarrow}$$ その集合は $${\{1,  3,  4,  5,  \cdots\}}$$
$${\rightarrow}$$ この集合の要素のうち最小の値は1
$${\rightarrow}$$ よって、石が2個の局面のグランディ数は1と決定・・・$${(*7)}$$
 ここまでのグランディ数列の推移は

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7\\
\hline
グランディ数 & 0 & 0 & 1 & 1 & 2 & 0 & 0 &1
\end{array}
$$

となります。実際、石の取り方が
 ①2個取る、②3個取る
のときのグランディ数は、次のように決定されます。

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & \cdots\\
\hline
グランディ数 & 0 & 0 & 1 & 1 & 2 & 0 & 0 & 1 & 1 & 2 & 0 & 0 & 1 & \cdots
\end{array}
$$

このときのグランディ数列は次のようになり
 $${\underline{00112}001120011200112 \cdots}$$
5つの数字「$${00112}$$」(下線部)が周期的に現れるので、周期5のグランディ数列となります。
 さらに、石の取り方が
  ①2個取る、②4個取る、③7個取る
のときのグランディ数列は次のようになります。
 $${00112203\underline{102}102102102 \cdots}$$
これは3つの数字「$${102}$$」(下線部)が周期的に現れるので、周期3のグランディ数列となります。このように頭からではなく、数列の途中から周期が現れる場合もあります。結果だけを示しておくので、実際に手を動かして計算してみてください。

5.『サブトラクションセット』について

 ここで新しい定義を与えます。取れる石の数を集合で表し、その集合を『サブトラクションセット』とよびます。
 例えば、取れる石の数を
  ①1個取る、②2個取る、③3個取る
としたときのサブトラクションセットは $${\{1,  2,  3\}}$$
 取れる石の数を
  ①2個取る、②3個取る
としたときのサブトラクションセットは $${\{2,  3\}}$$
 取れる石の数を
  ①2個取る、②3個取る、③7個取る
としたときのサブトラクションセットは $${\{2,  3,  7\}}$$ となります。取れる石の数を集合で表したものがサブトラクションセットです(注2)
 また、取れる石の数を『除去可能数』という場合もあります。取れる石の数を
  ①1個取る、②2個取る、③3個取る
としたときの除去可能数は1、2、3となります。

6.グランディ数についての重要な性質

 ここでグランディ数について、次の性質があります。

定理1
 グランディ数の値が0以外の局面のとき、先手が必勝戦略をもつ。 グランディ数の値が0の局面のとき、後手が必勝戦略をもつ。

 例えば、 サブトラクションセットが $${\{1,  2,  3\}}$$ のときグランディ数は次の通りでした。

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & \cdots\\
\hline
グランディ数 & 0 & 1 & 2 & 3 & 0 & 1 & 2 & 3 & 0 & 1 & 2 & 3 & 0 & \cdots
\end{array}
$$

すると、石の数が4の倍数のときはグランディ数は0なので、4の倍数のときに後手が必勝戦略をもちます。例えば残りの石の数が8個のときは

最初 ①➁➂④⑤⑥➆⑧
先手 1個取る $${\rightarrow}$$ 残りの石は7個
   ①➁➂④⑤⑥➆
後手 3個とる $${\rightarrow}$$ 残りの石は4個(4の倍数)
   ①➁➂④
   ここで先手に4の倍数を提示できるので
先手が1個取ると、後手が残りの3個すべてを取って後手の勝ち
先手が2個取ると、後手が残りの2個すべてを取って後手の勝ち
先手が3個取ると、後手が残りの1個すべてを取って後手の勝ち

と、最後に石を取った後手の勝ちとなります。
 一方、石の数が7個のときはグランディ数は3(0以外)なので

最初 ①➁➂④⑤⑥➆
先手 3個取る $${\rightarrow}$$ 残りの石は4個(4の倍数)
   ①➁➂④
   ここで後手に4の倍数を提示できるので
後手が1個取ると、先手が残りの3個すべてを取って先手の勝ち
後手が2個取ると、先手が残りの2個すべてを取って先手の勝ち
後手が3個取ると、先手が残りの1個すべてを取って先手の勝ち

と、今度は先手の勝ちとなります。

 もう一つ例を見てみましょう。サブトラクションセットが $${\{2,  3\}}$$ のときのグランディ数は次の通りでした。

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & \cdots\\
\hline
グランディ数 & 0 & 0 & 1 & 1 & 2 & 0 & 0 & 1 & 1 & 2 & 0 & 0 & 1 & \cdots
\end{array}
$$

すると、石の数が10個のときはグランディ数は0なので

最初 ①➁➂④⑤⑥➆⑧⑨⑩
先手 2個取る $${\rightarrow}$$ 残りの石は8個
   ①➁➂④⑤⑥➆⑧
後手 3個とる $${\rightarrow}$$ 残りの石は5個(5の倍数)
   ①➁➂④⑤
   ここで先手に5の倍数を提示できるので
先手が2個取ると、後手が残りの3個すべてを取って後手の勝ち
先手が3個取ると、後手が残りの2個すべてを取って後手の勝ち

と、最後に石を取った後手の勝ちとなります。これが冒頭でも述べた「5の倍数キープ」の必勝戦略です。
 ただし、この場合はそれ以外の勝ち方もあります。石の数6個のときもグランディ数は0なので

(case1)
最初 ①➁➂④⑤⑥
先手 2個取る $${\rightarrow}$$ 残りの石は4個
   ①➁➂④
後手 3個取る $${\rightarrow}$$ 残りの石は1個
   ①
ルール上1個の石は取れないので、最後の石を取った後手の勝ちとなります。

(case2)
最初 ①➁➂④⑤⑥
先手が3個取る $${\rightarrow}$$ 残りの石は3個
最初 ①➁➂
後手が3個取る $${\rightarrow}$$ 残りの石は0個

と、最後の石を取った後手の勝ちとなります。冒頭で「5の倍数をキープ」すれば勝ちと言いましたが、それだけではない勝ち方もあります。
 一方、石の数が7個のときはグランディ数は1(0以外)なので

最初 ①➁➂④⑤⑥➆
先手 2個取る $${\rightarrow}$$ 残りの石は5個(5の倍数)
   ①➁➂④⑤
   ここで先手に5の倍数を提示できるので
後手が2個取ると、先手が残りの3個すべてを取って先手の勝ち
後手が3個取ると、先手が残りの2個すべてを取って先手の勝ち

と、最後に石を取った先手の勝ちとなります(注3)
 結局このゲームの必勝パターンは、

1.自分にグランディ数が0でない局面が回ってきたら、相手にグランディ数が0の局面を回し、それをキープし続ける。
2.自分にグランディ数が0の局面が回ってきたら、相手が必勝手順から外れて自分にグランディ数が0でない局面が回ってくるまで粘り、それが回ってきたら1を実践する。

ということになります。あらかじめグランディ数の値を知っていることが鍵です。

 さらにグランディ数列について、次のような性質があります。

定理2
 サブトラクションセットが有限集合のとき、そのゲームのグランディ数列は必ず周期をもつ。

 『有限集合』とは、その集合の中身が有限個となる集合です。この集合の中身のことを『要素』といいます。例えば、これまで出てきたサブトラクションセット $${\{1,  2,  3\}}$$、$${\{2,  3\}}$$、$${\{2,  3,  7\}}$$ は、どれも要素が有限個なのですべて有限集合です。一方、自然数の集合 $${\{1,  2,  3,  4,  \cdots\}}$$ などは、要素が無限個あるので『無限集合』となります。
 するとグランディ数列の周期は、サブトラクションセットが $${\{1,  2,  3\}}$$ のときは4、$${\{2,  3\}}$$ のときは5、$${\{2,  3,  7\}}$$ のときは3となるこことはすでにやったので、確かにいずれの場合も周期をもっています。

7.石取りゲームにおける「未解決問題」

 ここで、次のような未解決問題があります。

未解決問題
「どんなサブトラクションセットに対しても、周期を与えるような式を見つけることができるか?」

 これは、任意のサブトラクションセット $${S}$$ を代入したときに、必ずそのグランディ数列の周期を求めてくれる関数 $${f(S)}$$ が存在するか?という問題です。
 例えばグランディ数列の周期は、サブトラクションセットが $${\{1,  2,  3\}}$$ のときは4だったので、$${f(S)}$$ に $${\{1,  2,  3\}}$$ を代入して
 $${f(\{1,  2,  3\})=4}$$
 サブトラクションセットが $${\{2,  3\}}$$ のときは5だったので、$${f(S)}$$ に $${\{1,  2,  3\}}$$ を代入して
 $${f(\{2,  3\})=5}$$
サブトラクションセットが $${\{2,  3,  7\}}$$ のときは3だったので、$${f(S)}$$ に $${\{2,  3,  7\}}$$ を代入して
 $${f(\{2,  3,  7\})=3}$$
さらにはより一般に、任意のサブトラクションセットが $${\{h_1,  h_2,  h_3,  \cdots,  h_n\}}$$ のときは、$${f(S)}$$ に $${\{h_1,  h_2,  h_3,  \cdots,  h_n\}}$$ を代入して
 $${f(\{h_1,  h_2,  h_3, \cdots,  h_n\})=h}$$
と周期 $${h}$$ を求めてくれる関数 $${f(S)}$$ が存在するか?という問題です。
 先日のMATH POWER2022での企画で、この $${f(S)}$$ を求めるチャレンジを2日間かけて行っていました。番組内では細かく場合分けをして $${f(S)}$$ を導き出し、有意義な結果を得られたようです。個人的には1つの式で一発で出せる $${f(S)}$$ が存在するのか、また存在しないにしても何か美しい構造が $${f(S)}$$ に潜んであるのかどうか、いろいろ「妄想」するとロマンがどんどん広がっていきます。

8.終わりに

 以上で『石取りゲーム』のルールと、必勝パターンを知る上での『グランディ数』、及びそのゲームに潜む未解決問題の解説を、なるべく一般の中学高校生でも分かるように解説してみました。専門家のチェックなど入っておらず不備があるかもしれませんが、随時加筆修正を加えていきます。
 この内容を踏まえ、リアルタイムで見た方も、見れなかった方も、タイムシフト(アーカイブによる再放送)で『MATH POWER2022』を見てみてください。 この2日間の通し企画はある意味通常企画より面白い(?)。数学を考える楽しさを僕らに与えてくれます。$${f(S)}$$ の構造を美しい形で完全解明できれば恐らくフィールズ賞。フィールズ賞を獲るのはあなたかもしれません。


(注1)
 実は、必勝パターンは1通りとは限らない場合もあります。
 ①2個取る、②3個取る
のルールでは、「5の倍数をキープ」する以外にも別の勝ち方もあります。それは後半に述べる『グランディ数』のところで解説します。

(注2)
 本記事では扱いませんが、番組内で使われている記号の定義をここで与えます。
 サブトラクションセット $${S}$$ が与えられたときの石取りゲームを『サブトラクションゲーム』とよび $${G(S)}$$ と表記します。例えば
 サブトラクションセット $${\{1,  2,  3\}}$$ が与えられたサブトラクションゲームは $${G(\{1,  2,  3\})}$$
 サブトラクションセット $${\{2,  3\}}$$ が与えられたサブトラクションゲームは $${G(\{2,  3\})}$$
 サブトラクションセット $${\{2,  3,  7\}}$$ が与えられたサブトラクションゲームは $${G(\{2,  3,  7\})}$$ となります。
 それを踏まえて今までのことをまとめると
 $${G(\{1,  2,  3\})}$$ のときのグランディ数列は
 $${\underline{0123}012301230123 \cdots}$$
下線部4つの周期性より周期4をもつ。
 $${G(\{2,  3\})}$$ のときのグランディ数列は
 $${\underline{00112}001120011200112 \cdots}$$
下線部5つの周期性より周期5をもつ。
 $${G(\{2,  3,  7\})}$$ のときのグランディ数列は
 $${00112203\underline{102}102102102 \cdots}$$
下線部3つの周期性より周期3をもつ。

(注3)
 石の取り方を間違えると、先手ではなく後手が勝ちになります。例えば石の取り方が
 ①2個取る、②3個取る
のとき、石が7個の局面のグランディ数は1(0以外)で先手に必勝戦略があります。

$$
\def\arraystretch{1.5}
\begin{array}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
局面の石の数 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & \cdots\\
\hline
グランディ数 & 0 & 0 & 1 & 1 & 2 & 0 & 0 & 1 & 1 & 2 & 0 & 0 & 1 & \cdots
\end{array}
$$

しかし、次にように進むと

最初 ①➁➂④⑤⑥➆
先手 3個取る $${\rightarrow}$$ 残りの石は4個
   ①➁➂④
後手 3個取る $${\rightarrow}$$ 残りの石は1個

ルール上1個の石は取れないので、最後の石を取った後手の勝ちとなります。
 このように、その局面で先手に必勝戦略があったとしても、取り方を間違えるとたちまち後手が勝ちになるので、「必勝戦略」とはどのように石をとっても勝ちになるという意味ではなく、戦略をもって最善で石を取っていった場合に勝ちになる、という意味です(当たり前の指摘ですが一応念のため)。

この記事が気に入ったらサポートをしてみませんか?