ナマリカルテ さん作成の 大学入試史上最も難しい伝説の問題をパズルゲームにしたとき、このゲームをクリアせよ。(1998東大) について、自分の知っている範囲でコツなどの解説を行います。ここに書かれていないもので重要なテクニックなどがあれば教えてくださると幸いです。
ルールは以下の通りです。(ゲーム内の説明を引用)
操作1: 〇のとなりに新しい〇をつなげるともとの〇の色が反転する。
操作2: 線の間に〇を置くと両側の〇の色が反転する。
J. Koizumiさんの解法
がわかりやすかったです。
白黒の〇の列を$1,2$からなる数列に対応させる考え方は本解説内で使用するので先に読んでおくことを推奨します。
J. Koizumiさんの解法 を参考に白黒の配列と$1,2$の配列を対応させます。
白黒の配列について、以下は同値である。
白黒の配列に$1,2$の配列を対応させる方法は、左端を$1$にするものと$2$にするものとで$2$通りありますが、どちらを選んでも総和が$\bmod 3$で$0$になるかどうかは変わりません。
白丸が$1$個の状態から操作1と操作2を繰り返して作ることができることを単に「作れる」と呼びます。
白丸$1$個の状態から始めて作れるような配列では対応する$1,2$の総和が$0$でないことは元の問題の解答からわかる。また、黒丸だけからなるものが作れないことは操作により白丸が追加されることからわかる。
上の条件をみたすときに白丸1個の状態から作ることができることを配列の長さの帰納法で示す。
長さ$1$の配列については明らかである。
以下、$B,W$はそれぞれ黒丸、白丸を表す。$X$は色を限定しない丸を表し、$X^\prime$は$X$と逆の色の丸であるとする。
定理1により、$1$次元の配列に対し、作れるかどうかの判定基準を与えることができました。定理1の系をいくつか挙げておきます。
$3n+2$個の$W$からなる配列は作ることができない。
長さ奇数の配列で奇数番目がすべて$B$であるようなものは作ることができない。
長さ奇数の左右対称な配列で、中央が$B$であるものは作ることができない。
$S_1,S_2$が作れない配列のとき、$S_1-X-S_2$も作ることができない。ただし、偶数個の$B$のみからなる配列はここでは作れるとしている。
$S_1$が作れる配列で$S_2$が作れない配列のとき、$S_1-X-S_2$は作ることができる。ただし、偶数個の$B$のみからなる配列はここでは作れるとしている。
このゲームでは、色の配列から操作を逆算することで目的の図形を作る必要があります。しかし、操作2は、両隣の色を反転させながら間に白を入れるというものなので、逆算するのに時間がかかります。
そこで、以下の例をご覧ください。
$\begin{xy}
\xymatrix@=5pt{&\w\ar@{-}[d]\\&\w\ar@{-}[d]\\\w\ar@{-}[r]&\b}
\end{xy}$$\underset{(1)}{\longrightarrow}$$\begin{xy}
\xymatrix@=5pt{&\w\ar@{-}[d]\\&\w\ar@{-}[d]\\\w\ar@{-}[r]&\w\ar@{-}[r]&\w}
\end{xy}$$\underset{(2)}{\longrightarrow}$$\begin{xy}
\xymatrix@=5pt{&\w\ar@{-}[d]\\&\w\ar@{-}[d]\\\w\ar@{-}[r]&\b\ar@{-}[r]&\w\ar@{-}[r]&\b}
\end{xy}$
この例は、操作1→操作2の順に行って $\w-\b$ を付加できることを示しています。操作2の逆算は難しいですが、このように複数の操作をひとまとめにすることで逆算が簡単になることがあります。このような一連の操作をたくさん覚えることが高得点を取るには欠かせません。
$WB\cdots B$ ($B$が奇数個)は根の色を変えずに付加でき、$WB\cdots B$ ($B$が偶数個)を付加すると根の色が変わります。
\begin{align}
-X\underset{(1)}{\longrightarrow}-X^\prime-W\underset{(2)}{\longrightarrow}-X-W-B\underset{(2)}{\longrightarrow}-X^\prime-W-B-B\underset{(2)}{\longrightarrow}-X-W-B-B-B\underset{(2)}{\longrightarrow}\cdots
\end{align}
$BWW$と$WWW$は根の色を変えずに付加できます。
\begin{align}
-X\underset{(1)}{\longrightarrow}-X^\prime-W
\underset{(2)}{\longrightarrow}-X-W-B
\underset{(1)}{\longrightarrow}-X-W-W-W
\end{align}
\begin{align}
-X\underset{(1)}{\longrightarrow}-X^\prime-W
\underset{(2)}{\longrightarrow}-X-W-B
\underset{(2)}{\longrightarrow}-X-B-W-W
\end{align}
端の$W$は$B\cdots BW$に変えられます。
\begin{align}
-W\underset{(1)}{\longrightarrow}-B-W\underset{(1)}{\longrightarrow}-B-B-W\underset{(1)}{\longrightarrow}-B-B-B-W\underset{(1)}{\longrightarrow}\cdots
\end{align}
$W$の隣に$BB$を入れられます。
\begin{align}
-X-W-Y-\underset{(2)}{\longrightarrow}-X^\prime-W-B-Y-\underset{(2)}{\longrightarrow}-X-W-B-B-Y-
\end{align}
\begin{align}
-X-W-Y-\underset{(2)}{\longrightarrow}-X-B-W-Y^\prime-\underset{(2)}{\longrightarrow}-X-B-B-W-Y-
\end{align}
これらを組み合わせることで以下のものは作れます。
\begin{align}-X\longrightarrow-X-W-B\end{align}
\begin{align}-X\longrightarrow-X-W-W-W\end{align}
\begin{align}-X\longrightarrow-X-B-W-W\end{align}
\begin{align}-X\longrightarrow-X-W-W-B-W\end{align}
\begin{align}-X\longrightarrow-X-W-B-W-B\end{align}
\begin{align}-X\longrightarrow-X-W-B-B-B\end{align}
\begin{align}-X\longrightarrow-X-B-W-B-W\end{align}
\begin{align}-X\longrightarrow-X-B-B-W-B\end{align}
\begin{align}-X\longrightarrow-X^\prime-W\end{align}
\begin{align}-X\longrightarrow-X^\prime-B-W\end{align}
\begin{align}-X\longrightarrow-X^\prime-W-W-B\end{align}
\begin{align}-X\longrightarrow-X^\prime-W-B-B\end{align}
\begin{align}-X\longrightarrow-X^\prime-B-B-W\end{align}
\begin{align}-X\longrightarrow-X^\prime-W-W-W-W\end{align}
\begin{align}-X\longrightarrow-X^\prime-W-B-W-W\end{align}
\begin{align}-X\longrightarrow-X^\prime-B-W-W-B\end{align}
\begin{align}-X\longrightarrow-X^\prime-B-W-B-B\end{align}
\begin{align}-X\longrightarrow-X^\prime-B-B-B-W\end{align}
1次元の配列$S$に対して以下が成り立つ。
定理1と同様、黒丸だけからなるものは$\bmod 3$で弾けないため、例外となっています。
定理1では白黒の配列を$1,2$の配列に対応させる方法はどちらでもいいとしていましたが、ここでは左端が$1$であるもののみを考えています。これは、付加するときは片方の端が固定されていて左端の整数が変わらないことに由来します。
証明は省略します。また、以下が成り立ちます。
$S_1$を、根の色を変えずに付加できる配列とする。
このとき、$S-S_1$が作れることは$S$が作れることと同値である。ただし、$S$が$B$のみからなる場合は除く。
今までに説明したことを組み合わせると2次元の場合にも対処することができます。何を付加するすればいいかを逆算することでより小さい盤面に帰着するというのが基本の考え方です。以下の例がわかりやすいと思います。
$\begin{xy}
\xymatrix@=5pt{\w\ar@{-}[r]&\w\ar@{-}[r]&\b\ar@{-}[r]&\w\ar@{-}[r]&\b}
\end{xy}$$\underset{}{\longrightarrow}$$\begin{xy}
\xymatrix@=5pt{&\w\ar@{-}[d]&&&\b\ar@{-}[d]\\
&\b\ar@{-}[d]&&&\w\ar@{-}[d]\\
\w\ar@{-}[r]&\b\ar@{-}[r]&\w\ar@{-}[r]&\w\ar@{-}[r]&\b\\
&&\w\ar@{-}[u]&&}
\end{xy}$
このゲームでは、問題で与えられる図形には辺が書かれていないので辺を自分で復元する必要があります。復元の仕方が一意に定まらないものをいくつか挙げます。
\begin{align}\begin{xy}
\xymatrix@=5pt{\w\ar@{-}[d]&\w\ar@{-}[d]&\w\ar@{-}[d]\\
* \ar@{-}[r]&* \ar@{-}[r]&*}
\end{xy}\phantom{{}={}}\begin{xy}
\xymatrix@=5pt{\w\ar@{-}[r]&\w\ar@{-}[d]&\w\ar@{-}[l]\\
* \ar@{-}[r]&* \ar@{-}[r]&*}
\end{xy}\end{align}
\begin{align}\begin{xy} \xymatrix@=5pt{\b\ar@{-}[r]&\w\ar@{-}[r]&\w\ar@{-}[d]\\ * \ar@{-}[r]&* \ar@{-}[r]&*} \end{xy}\phantom{{}={}}\begin{xy} \xymatrix@=5pt{\b\ar@{-}[d]&\w\ar@{-}[l]&\w\ar@{-}[d]\\ * \ar@{-}[r]&* \ar@{-}[r]&*} \end{xy}\end{align}
\begin{align}\begin{xy} \xymatrix@=5pt{\w\ar@{-}[r]&\b\ar@{-}[d]&\w\ar@{-}[d]\\ * \ar@{-}[r]&* \ar@{-}[r]&*} \end{xy}\phantom{{}={}}\begin{xy} \xymatrix@=5pt{\w\ar@{-}[d]&\b\ar@{-}[d]&\w\ar@{-}[l]\\ * \ar@{-}[r]&* \ar@{-}[r]&*} \end{xy}\end{align}
\begin{align}\begin{xy} \xymatrix@=5pt{&\w\ar@{-}[d]\\ &\w\ar@{-}[d]\\ \w\ar@{-}[d]&\w\ar@{-}[d]\\ * \ar@{-}[r]&*} \end{xy}\phantom{{}={}}\begin{xy} \xymatrix@=5pt{&\w\ar@{-}[d]\\ &\w\ar@{-}[d]\\ \w\ar@{-}[r]&\w\ar@{-}[d]\\ * \ar@{-}[r]&*} \end{xy}\end{align}
\begin{align}\begin{xy} \xymatrix@=5pt{\w\ar@{-}[r]&\w\ar@{-}[d]\\ \w\ar@{-}[d]&\w\ar@{-}[d]\\ * \ar@{-}[r]&*} \end{xy}\phantom{{}={}}\begin{xy} \xymatrix@=5pt{\w\ar@{-}[d]&\w\ar@{-}[l]\\ \w\ar@{-}[d]&\w\ar@{-}[d]\\ * \ar@{-}[r]&*} \end{xy}\end{align}
\begin{align}\begin{xy}
\xymatrix@=5pt{\w\ar@{-}[r]\ar@{-}[d]&\b\ar@{-}[d]\\
\w\ar@{-}[d]&\w\\
* \ar@{-}[r]&*}
\end{xy}\phantom{{}={}}\begin{xy}
\xymatrix@=5pt{\w\ar@{-}[r]&\b\ar@{-}[d]\\
\w\ar@{-}[r]&\w\ar@{-}[d]\\
* \ar@{-}[r]&*}
\end{xy}\end{align}
そのほか、このように、はじめからあった丸が長い直線上にないタイプは盲点になりやすいです。
\begin{align}\begin{xy}
\xymatrix@=5pt{&\b\ar@{-}[d]&\w\ar@{-}[d]\\
\w\ar@{-}[r]&\b\ar@{-}[r]&\b\ar@{-}[r]&\b}
\end{xy}\end{align}
下のように辺を張ってしまうと沼にはまります。
\begin{align}\begin{xy}
\xymatrix@=5pt{&\b\ar@{-}[d]&\w\ar@{-}[l]\\
\w\ar@{-}[r]&\b\ar@{-}[r]&\b\ar@{-}[r]&\b}
\end{xy}\end{align}
自分の知っている範囲のことは一通り書けたと思いますが、結局のところ、このゲームは時間との勝負なので、何度もプレイして慣れることが何より大切だと思います。時間回復のシステムも絶妙で、プレイを重ねるうちに自分の成長を実感できて楽しいです。この記事を読んだ皆さんが高得点を取れることを願っています。
$n$個の〇からなる図形を作ると$n$点が加算されて制限時間が$n$秒増えるので、得点とプレイ時間はおよそ一致します。
また、何問目に何個の〇からなる図形が出題されるかは固定されており、以下の表のようになっています。(したがって、得点の大小は解いた問題の数の大小と一致します。)
a-b問目 | 〇の個数 | b問目終了時の点数 |
---|---|---|
1-6 | 3 | 18 |
7-14 | 4 | 50 |
15-24 | 5 | 100 |
25-36 | 6 | 172 |
37-50 | 7 | 270 |
51-66 | 8 | 398 |
67-84 | 9 | 560 |
85-104 | 10 | 760 |