失落的图书馆,那些科学知识。

作者 xtimz, 2018 二月 06, 08:11:43

« 上一篇主题 - 下一篇主题 »

xtimz

一个天文学的,一个数学的。
以现代观点来看,是这样的。

1. 天文谜题:



这个现代人做起来还真难,因为它是古代的"地心说",而不是现代的"日心说"。中间的是地球,由内往外的4圈分别是:月球、水星、金星、太阳。
再往外(游戏中没有)分别是:火星、木星、土星、恒星圈。



xtimz

2. 蛇像谜题:



以现代的观点来看,这个就是在二元域 GF(2) 上解线性方程组。其中,GF 是英文"有限域",也叫"伽罗瓦域(Galois Field)"的缩写。
二元域是定义在 {0,1} 这2个元素上的2种运算:

1. 加法运算:0+0 = 1+1 = 0,0+1 = 1+0 = 1。
2. 乘法运算:0*0 = 0*1 = 1*0 = 0,1*1 = 1。

可以看出,这个与传统的加法、乘法运算的区别仅在于:1+1=0,因为拉同一个杠杆2次等于没拉。
下面需要用到矩阵乘法的定义,我都放在一张图片上了。只需记住:这是二元域上的矩阵,其元素之间的加法要遵循 1+1=0 的规则。



xtimz

上图的 Latex 源码,若图片消失,可用 Ctex 运行源代码即可。


\documentclass{article}
\usepackage{ctex}
\begin{document}
\setlength{\parindent}{0em}
将7个蛇像以顺时针的顺序编号(从任何一个开始都可以),令矩阵$A$:
\begin{displaymath}
A = \left[
\begin{array}{ccccccc}
1 & 0 & 0 & 1 & 1 & 0 & 0 \\
0 & 1 & 0 & 0 & 1 & 1 & 0 \\
0 & 0 & 1 & 0 & 0 & 1 & 1 \\
1 & 0 & 0 & 1 & 0 & 0 & 1 \\
1 & 1 & 0 & 0 & 1 & 0 & 0 \\
0 & 1 & 1 & 0 & 0 & 1 & 0 \\
0 & 0 & 1 & 1 & 0 & 0 & 1
\end{array}
\right]
\end{displaymath}
其中,$A$的第$i$列表示:当第$i$个杠杆被拉下后,哪几个火焰会改变。
比如第$1$列,第$1$、$4$、$5$个元素为$1$,就表示:当第$1$个杠杆被拉下后,第$1$、$4$、$5$个火焰会改变状态。
再令向量$x$、$b$分别表示:
\begin{displaymath}
x_i = \left\{
\begin{array}{ll}
1, & \mbox{第$i$个杠杆被拉下.} \\
0, & \mbox{第$i$个杠杆没被拉下.}
\end{array}
\right.
\end{displaymath}
\begin{displaymath}
b_i = \left\{
\begin{array}{ll}
1, & \mbox{第$i$个火焰被点燃.} \\
0, & \mbox{第$i$个火焰未被点燃.}
\end{array}
\right.
\end{displaymath}
则有性质:$Ax=b$.
比如:第$1$、$2$个杠杆被拉下,$x=(1,1,0,0,0,0,0)^T$,计算得到:$b=Ax=(1,1,0,1,0,1,0)^T$,也就是第$1$、$2$、$4$、$6$个火焰被点燃。
于是,我们就得到了:已知哪几个杠杆被拉下,求哪几个火焰被点燃的方法。
我们的目标是:已知哪几个火焰被点燃,求哪几个杠杆被拉下。
由线性代数的知识,只需求出$A$的逆矩阵$A^{-1}$:
\begin{displaymath}
A^{-1} = \left[
\begin{array}{ccccccc}
1 & 0 & 1 & 1 & 1 & 1 & 0 \\
0 & 1 & 0 & 1 & 1 & 1 & 1 \\
1 & 0 & 1 & 0 & 1 & 1 & 1 \\
1 & 1 & 0 & 1 & 0 & 1 & 1 \\
1 & 1 & 1 & 0 & 1 & 0 & 1 \\
1 & 1 & 1 & 1 & 0 & 1 & 0 \\
0 & 1 & 1 & 1 & 1 & 0 & 1
\end{array}
\right]
\end{displaymath}
就有:$x=A^{-1}b$.
比如:我们要求除了第$1$个火焰之外,其它所有火焰都点燃,也就是:$b=(0,1,1,1,1,1,1)^T$。
计算得到:$x=A^{-1}b=(0,1,0,0,0,0,1)^T$,所以需要拉下第$2$、$7$个杠杆。
\end{document}

Cloudionut

这真的很难。 我花了很长时间来解决这个难题。