手写数独教程

该文目的是简单记载3*3数独的手写过程,并熟悉一下mathjax工具的运用。

正文

该文的整个过程可以用手写实现,也可以用编程语言实现,该文不对怎么用编程语言实现做详细描述。仅阐述手写的详细过程:

生成行

首先,我们可以手写一行包含19数据行A,不重复即可,顺序不重要,该文以19顺序排列做示例。
\begin{bmatrix}
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \
\end{bmatrix}
然后将数据行A的前三位1,2,3移到数据行A的末尾,生成新的一行数据行B:
\begin{bmatrix}
4 & 5 & 6 & 7 & 8 & 9 &1 & 2 & 3 \
\end{bmatrix}
然后将数据行B的前三位4,5,6移到数据行B的末尾,生成新的一行数据行C:
\begin{bmatrix}
7 & 8 & 9 &1 & 2 & 3 & 4 & 5 & 6 \
\end{bmatrix}

生成块

再将数据行依次组合,生成一个3行9列的数据块 $X_1$
\begin{bmatrix}
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \
4 & 5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 \
7 & 8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 \
\end{bmatrix}
将数据块$X_1$的第一列
\begin{bmatrix}
1 \
4 \
7 \
\end{bmatrix}
移到最后一列生成新的数据块$X_2$
\begin{bmatrix}
2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 1\
5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 & 4\
8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 & 7\
\end{bmatrix}
再将数据块$X_2$的第一列
\begin{bmatrix}
2 \
5 \
8 \
\end{bmatrix}
移到最后一列生成新的数据块$X_3$
\begin{bmatrix}
3 & 4 & 5 & 6 & 7 & 8 & 9 & 1 & 2\
6 & 7 & 8 & 9 & 1 & 2 & 3 & 4 & 5\
9 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\
\end{bmatrix}
再将数据块$X_1$,$X_2$,$X_3$依次组合,就形成了如下图所示的数独$Y_1$。
\begin{bmatrix}
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \
4 & 5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 \
7 & 8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 \
2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 1 \
5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 & 4 \
8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \
3 & 4 & 5 & 6 & 7 & 8 & 9 & 1 & 2 \
6 & 7 & 8 & 9 & 1 & 2 & 3 & 4 & 5 \
9 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \
\end{bmatrix}
所以说手写数独是很简单的,那怎么样让别人看不出来这是一个手写的?

行交换

可以将 **[1,2,3]**行中两两任意互换;
可以将 **[4,5,6]**行中两两任意互换;
可以将 **[7,8,9]**行中两两任意互换;
第一行和第三行交换用 $1\Leftrightarrow3$ 表示。
依次执行$1\Leftrightarrow3$ ,$4\Leftrightarrow5$ 和 $8\Leftrightarrow9$
生成新的数独$Y_2$。如下:
\begin{bmatrix}
4 & 5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 \
7 & 8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 \
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \
5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 & 4 \
2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 1 \
8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \
3 & 4 & 5 & 6 & 7 & 8 & 9 & 1 & 2 \
9 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \
6 & 7 & 8 & 9 & 1 & 2 & 3 & 4 & 5 \
\end{bmatrix}

列交换

可以将 **[1,2,3]**列中两两任意互换;
可以将 **[4,5,6]**列中两两任意互换;
可以将 **[7,8,9]**列中两两任意互换;
第一列和第三列交换用 $1\Longleftrightarrow3$ 表示。
依次对$Y_2$执行$1\Longleftrightarrow3$ ,$4\Longleftrightarrow5$ 和 $8\Longleftrightarrow9$
生成新的数独$Y_3$。如下:
\begin{bmatrix}
6 & 5 & 4 & 8 & 7 & 9 & 1 & 3 & 2 \
9 & 8 & 7 & 2 & 1 & 3 & 4 & 6 & 5 \
3 & 2 & 1 & 5 & 4 & 6 & 7 & 9 & 8 \
7 & 6 & 5 & 9 & 8 & 1 & 2 & 4 & 3 \
4 & 3 & 2 & 6 & 5 & 7 & 8 & 1 & 9 \
1 & 9 & 8 & 3 & 2 & 4 & 5 & 7 & 6 \
5 & 4 & 3 & 7 & 6 & 8 & 9 & 2 & 1 \
2 & 1 & 9 & 4 & 3 & 5 & 6 & 8 & 7 \
8 & 7 & 6 & 1 & 9 & 2 & 3 & 5 & 4 \
\end{bmatrix}

数值交换

将数独$Y_3$中的数字任意两个数字互换局组成了新的数独,如数独$Y_3$的27互换,就生成了新的数独$Y_4$
\begin{bmatrix}
6 & 5 & 4 & 8 & 2 & 9 & 1 & 3 & 7 \
9 & 8 & 2 & 7 & 1 & 3 & 4 & 6 & 5 \
3 & 7 & 1 & 5 & 4 & 6 & 2 & 9 & 8 \
2 & 6 & 5 & 9 & 8 & 1 & 7 & 4 & 3 \
4 & 3 & 7 & 6 & 5 & 2 & 8 & 1 & 9 \
1 & 9 & 8 & 3 & 7 & 4 & 5 & 2 & 6 \
5 & 4 & 3 & 2 & 6 & 8 & 9 & 7 & 1 \
7 & 1 & 9 & 4 & 3 & 5 & 6 & 8 & 2 \
8 & 2 & 6 & 1 & 9 & 7 & 3 & 5 & 4 \
\end{bmatrix}

行交换,列交换,数值交换次数越多,就越来越没有手写的痕迹。掌握了数独的一个相关规律,手写数独就再是遥不可及的事情。

总结

该文简单地介绍了手写数独的过程,希望那些对数独感兴趣的人读了这篇文章后有所收获。


参考资料