石取りゲームにおける『グランディ数』及び、そこに潜む『未解決問題』を、中学・高校生にも分かるように解説!
『石取りゲーム』というのがあります。なおこのゲームは、ニコニコ生放送 『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個取る、②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, 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, 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個の石は取れないので、最後の石を取った後手の勝ちとなります。
このように、その局面で先手に必勝戦略があったとしても、取り方を間違えるとたちまち後手が勝ちになるので、「必勝戦略」とはどのように石をとっても勝ちになるという意味ではなく、戦略をもって最善で石を取っていった場合に勝ちになる、という意味です(当たり前の指摘ですが一応念のため)。