大学院の入試があったので久しぶりの更新となってしまった.
今回は変則的な動きをするナイト(変則ナイト)がどのような動きをするならば, この変則ナイトで盤面上を駆け回れるかを考える.
参考までにナイト(チェス), 変則チェスのwikipediaのリンクを張っておく:
ナイト(チェス),
変則チェス.
この記事では盤面の広さを とし, ナイトの初期位置は原点 にとる
(通常のチェスの盤面の広さは で,
ナイトの初期位置は , , 相手方なら , である).
図1 通常ナイトの動き | 図2 変則ナイトの動き |
変則ナイトの動きの定義
通常のチェスでは, ナイトは上の図1のように, 1列先の右斜め前などの最大8ヶ所のマスに移動することが出来る.
これを数学的に表せば, 通常ナイトはベクトル
\begin{align*}
\boldsymbol{v}_1 = \begin{pmatrix} 2 \\ 1 \end{pmatrix}, \quad
\boldsymbol{v}_2 = \begin{pmatrix} 1 \\ 2 \end{pmatrix}, \quad
\boldsymbol{v}_3 = \begin{pmatrix} -1 \\ 2 \end{pmatrix}, \quad
\boldsymbol{v}_4 = \begin{pmatrix} -2 \\ 1 \end{pmatrix},
\end{align*}
およびこれらの逆ベクトルの動きが出来ると言える.
これを一般化して, ベクトル
\begin{align*}
\boldsymbol{v}_1 = \begin{pmatrix} a \\ b \end{pmatrix}, \quad
\boldsymbol{v}_2 = \begin{pmatrix} b \\ a \end{pmatrix}, \quad
\boldsymbol{v}_3 = \begin{pmatrix} -b \\ a \end{pmatrix}, \quad
\boldsymbol{v}_4 = \begin{pmatrix} -a \\ b \end{pmatrix},
\end{align*}
およびこれらの逆ベクトルの動きが出来る「変則ナイト」を考える(図2).
以下, このナイトを「 ナイト」と呼ぼう.
ただし , は整数で, である(, のとき通常ナイトを再現する).
このとき, ナイトが到達するマスの位置ベクトル は, 1~4の値をとる整数列 を用いて
\begin{align*}
\boldsymbol{p} = \pm\boldsymbol{v}_{a_1} \pm\boldsymbol{v}_{a_2} \pm\boldsymbol{v}_{a_3} \pm\cdots
\end{align*}
と書ける.
すなわち, ナイトが到達可能なマスは, ~ を整数として
\begin{align*}
\boldsymbol{p} = n_1\boldsymbol{v}_1+n_2\boldsymbol{v}_2+n_3\boldsymbol{v}_3+n_4\boldsymbol{v}_4 \tag{1}
\end{align*}
で表される の全体である.
変則ナイトで盤面を駆け回るには
では, 上で定義した ナイトが盤面上の全てのマスに到達できる条件を考える.
明らかにこれの必要十分条件は 式が2つの基本ベクトルを含むことである.
つまり,
\begin{align*}
\begin{pmatrix} 1 \\ 0 \end{pmatrix} &= n_1\boldsymbol{v}_1+n_2\boldsymbol{v}_2+n_3\boldsymbol{v}_3+n_4\boldsymbol{v}_4, \tag{2-1} \\
\begin{pmatrix} 0 \\ 1 \end{pmatrix} &= m_1\boldsymbol{v}_1+m_2\boldsymbol{v}_2+m_3\boldsymbol{v}_3+m_4\boldsymbol{v}_4 \tag{2-2}
\end{align*}
を満たす整数の組 ~ が存在するような正整数の組 が条件を満たす.
ナイトの動きの対称性から 式だけを考えれば十分なので, 全ての成分をあらわに書いて
\begin{align*}
\left\{ \begin{matrix}
n_1a+n_2b-n_3b-n_4a =1, \\
n_1b+n_2a+n_3a+n_4b =0.
\end{matrix} \right.
~\Leftrightarrow~
\left\{ \begin{matrix}
(n_1-n_4)a+(n_2-n_3)b =1, \\
(n_2+n_3)a+(n_1+n_4)b =0.
\end{matrix} \right. \tag{3}
\end{align*}
まず, 式の第1式より , は互いに素である必要がある.
これはBézoutの補題(Wikipedia: ベズーの等式)より従う.
これは,「正整数 , , 整数 , に対して定義される整数 は,
, の最大公約数の倍数しか取りえない」というものである(証明略).
この補題より , の最大公約数は1であることが分かるので, , は互いに素である.
次に, 考えている , に対して, 等式 の整数解 が1組見つかったとする
(例えば ならば など, ならば などである).
その整数解を とおく.
すると を整数として
\begin{align*}
p_1a+p_2b=1 ~\Leftrightarrow~
\left\{ \begin{matrix}
n_1-n_4 = p_1+kb, \\
n_2-n_3 = p_2-ka
\end{matrix} \right. \tag{a}
\end{align*}
が成立する(これは 式の第1式に代入すれば明らか).
これを 式の第2式に代入して,
\begin{align*}
(p_2-ka+2n_3)a+(p_1+kb+2n_4)b =0.
\end{align*}
これが成立するためには, 整数 を用いて
\begin{align*}
\left\{ \begin{matrix}
p_2-ka+2n_3 = ~~~\, lb, \\
p_1+kb+2n_4 = -la\,
\end{matrix} \right. \tag{b}
\end{align*}
と書ける必要があり, 逆に
\begin{align*}
\left\{ \begin{matrix}
\displaystyle n_1 = \frac{p_1-la+kb}{2},~\, &\displaystyle n_2 = \frac{p_2-ka+lb}{2},~~ \\
\displaystyle n_3 = \frac{-p_2+ka+lb}{2},&\displaystyle n_4 = \frac{-p_1-la-kb}{2}\,
\end{matrix} \right. \tag{4}
\end{align*}
は全て整数である必要がある.
最後に, , の偶奇が異なる場合のみ 式で表される ~ が整数になることを示す.
「:偶数, :奇数」とする(逆の場合も同様の議論が成り立つ).
このような , に対しては,
なる , が「:偶数, :奇数」に取れる
(必要ならば 式の を適当に動かせばよい).
すると 式の ~ は(分子が全て偶数になる必要があるので),
「:偶数, :奇数」のとき整数となる.
これで「:偶数, :奇数(とその逆)」のときは
式が成立するような整数 ~ が存在することが示された.
(いま , は互いに素なので,「:偶数, :奇数(とその逆)」
もしくは「:奇数, :奇数」しかありえない. 後者の場合そのような整数
~ は存在しないことが同様の議論で証明できる.)
まとめ
以上より ナイトが盤面上の全てのマスに到達できる条件は,
ことであると分かった.
例えば通常のナイトは ナイトなので上の条件を満たし, 確かに全てのマスに到達できる.
一方で ナイトは条件を満たさず, 例えば自身の1つ上のマスには到達できない.
暇ならば色々試してみるのも面白いかもしれない.