为什么测 6 次就够了——魔表的对称性探秘

魔表03:对称性探究——从 64 种操作到 6 个原型

回顾

上一篇文章中,我们建立了一个基于线性方程组的数学模型:把 64 种”按钮-拨轮“组合各自的效果向量排成矩阵 \(\mathbf{A}\),然后求解 \(\mathbf{A}\mathbf{k} \equiv -\mathbf{x} \pmod{12}\) 即可得到一组复原操作。

问题在于——谁愿意手动标定 64 个效果向量?每个向量 18 个分量,64 次重复,枯燥且容易出错。

但如果你动手玩过魔表,几分钟内就会发现:很多操作的效果看上去就像是前几个操作的"旋转"或者"镜像"。比如,"只按 UL,转 UL 拨轮"的效果和"只按 UR,转 UR 拨轮"的效果,好像只是把整个盘面旋转了 90°。

如果这种对应关系是精确的,那么我们就可以只测少数几个原型操作,其余的全部用对称性推出来

本文就来系统地探究这些对称性,并看看它们到底能把 64 次测量压缩到多少次。


一、旋转对称:\(R\)

1.1 直观描述

魔表的盘面是个正方形,四角各有一个按钮和一个拨轮。如果我们把整个魔表绕中心旋转 90°,会发生什么?

  • 左上角(UL)转到了右上角(UR)
  • 右上角(UR)转到了右下角(DR)
  • 右下角(DR)转到了左下角(DL)
  • 左下角(DL)转到了左上角(UL)

也就是说,旋转把四个角按循环 \(( \mathrm{UL} \to \mathrm{UR} \to \mathrm{DR} \to \mathrm{DL} )\) 重新排列。

于是,一个很自然的猜想是:

"在 UL 角进行某操作"的效果,旋转 90° 后,应该等价于"在 UR 角进行同样的操作"。

1.2 正面与反面的旋转方向

顺时针旋转90示意图

观察这个图片,这里有一个细节:魔表有正反两面。当我们把魔表整体旋转 90° 时:

  • 正面的盘面跟着魔表一起顺时针旋转了 90°
  • 反面呢?你把魔表翻过来看,就相当于从背面观察同一个旋转——反面看到的是逆时针 90° 旋转

所以旋转操作 \(R\) 对正反面的作用是不同的:

\[\begin{aligned} \text{正面:} &\quad \text{顺时针旋转 90°} \\ \text{反面:} &\quad \text{逆时针旋转 90°} \end{aligned} \]

用坐标来表示。设正面为 \(F_{r,c}\),反面为 \(B_{r,c}\)\(r\) 为行,\(c\) 为列,都从 \(0\)\(2\)):

\[\begin{aligned} R(F)_{r,c} &= F_{2-c,\, r} \\[4pt] R(B)_{r,c} &= B_{c,\, 2-r} \end{aligned} \]

用矩阵来表示更直观。正面顺时针 90°:

\[R:\quad \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} \;\longrightarrow\; \begin{pmatrix} g & d & a \\ h & e & b \\ i & f & c \end{pmatrix} \]

反面逆时针 90°(等价于顺时针 270°):

\[R:\quad \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} \;\longrightarrow\; \begin{pmatrix} c & f & i \\ b & e & h \\ a & d & g \end{pmatrix} \]

一个操作的效果向量旋转后,就变成了另一个角上的对应操作的效果向量。旋转 4 次回到原位:\(R^4 = I\)

1.3 举例说明

以上图为例,这个旋转对称性给我们提供的信息是:

已知 \(S = \{\mathrm{UL}\},w = \mathrm{UL}\) 时(即只按下 UL 按钮,顺时针转 UL 拨轮),产生的变换效果为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{matrix} \qquad \text{反面:}\; \begin{matrix} 0 & -1 & -1 \\ 0 & -1 & -1 \\ 0 & 0 & 0 \end{matrix} \end{aligned} \]

那么,根据旋转对称性,当 \(S = \{\mathrm{UR}\},w = \mathrm{UR}\) 时,产生的变换效果就应当为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} 0 & 0 & +1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{matrix} \qquad \text{反面:}\; \begin{matrix} -1 & -1 & 0 \\ -1 & -1 & 0 \\ 0 & 0 & 0 \end{matrix} \end{aligned} \]

同理,我们自然可以得到,旋转 180° 和 旋转 270° 下的变换向量了。


二、对角线轴对称:\(D\)

旋转 \(R\) 能把四个角串起来。但 \(\mathrm{UR}\)\(\mathrm{DL}\) 是正方形对角线上的一对,它们之间的关系不能单靠 \(R\) 来建立。要建立 \(\mathrm{UR}\)\(\mathrm{DL}\) 的关系,我们还需要一个对角线上的镜像操作。

2.1 直观观察

我们以正面的主对角线作为对称轴进行探究(同时它也是反面的副对角线),如下图中红色虚线所示。

魔表对称轴

由下图可以看到,经过我们实测,当按钮的状态关于主对角线呈轴对称分布时,它们的转换效果也是沿主/副对角线轴对称的。

image-20260723211821673

上图具体来说,是这样的:

\(S = \{\mathrm{UR}\}, w = \mathrm{UL}\) 时,产生的变换效果为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & +1 & 0 \\ +1 & +1 & +1 \\ +1 & +1 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} 0 & 0 & -1 \\ 0 & 0 & 0 \\ -1 & 0 & -1 \end{matrix} \end{aligned} \]

那么当 \(S = \{\mathrm{DL}\}, w = \mathrm{UL}\) 时,产生的变换效果为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & +1 & +1 \\ +1 & +1 & +1 \\ 0 & +1 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} -1 & 0 & -1 \\ 0 & 0 & 0 \\ -1 & 0 & 0 \end{matrix} \end{aligned} \]

可以看到,当按钮的位置关于主对称轴对称,那么产生的变化效果也相应地关于主/副对角线对称,具体表现为正面关于主对角线对称,反面关于副对角线对称

2.2 对角镜像的定义

定义 \(D\) 为保持 \(\mathrm{UL}-\mathrm{DR}\) 对角线不变,交换 \(\mathrm{UR}\)\(\mathrm{DL}\) 的镜像。

这就相当于沿 \(\mathrm{UL}-\mathrm{DR}\) 对角线翻转盘面:

  • 正面:做转置(行列互换)

\[D(F)_{r,c} = F_{c,r} \]

\[D:\; \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} \;\longrightarrow\; \begin{pmatrix} a & d & g \\ b & e & h \\ c & f & i \end{pmatrix} \]

  • 反面:做反对角转置

\[D(B)_{r,c} = B_{2-c,\,2-r} \]

\[D:\; \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} \;\longrightarrow\; \begin{pmatrix} i & f & c \\ h & e & b \\ g & d & a \end{pmatrix} \]

在按钮标签上,\(D\) 的作用是:

\[D(\mathrm{UL}) = \mathrm{UL},\quad D(\mathrm{UR}) = \mathrm{DL},\quad D(\mathrm{DR}) = \mathrm{DR},\quad D(\mathrm{DL}) = \mathrm{UR} \]

同样,\(D^2 = I\)

注:正反面的 \(D\) 定义不同,是因为正面和反面的坐标方向不同(反面是从背面观察的)。用坐标来定义 \(D(F)\)\(D(B)\) 是精确的,矩阵形式只是直观辅助。


三、正反互补对称:\(C\)

3.1 直观观察

有了旋转 \(R\) 和对角镜像 \(D\),我们已经可以从”只按一角“推导出其余三个角的对应操作。

但还剩下一类重要的对称性:按钮的补集关系。仔细观察标定数据就会发现——”只按某个按钮“和”只不按那个按钮(即其余三个全按)“的两种操作,效果向量之间存在确定的对应关系。如果能精确找到这个对应关系,测量工作量又能砍掉一半。

本节以 \(S = \{\mathrm{UR}\}, w = \mathrm{UL}\) 为起点来探究。已知当只按下 UR 按钮、顺时针转 UL 拨轮时的效果为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & +1 & 0 \\ +1 & +1 & +1 \\ +1 & +1 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} 0 & 0 & -1 \\ 0 & 0 & 0 \\ -1 & 0 & -1 \end{matrix} \end{aligned} \]

我们的目标是:用已有的对称性推导出它的补集——即只不按 UR(等价于按下 UL、DL、DR),顺时针转 UL 拨轮——的效果向量。

3.2 四步推导

四步推导

如上图所示,我们通过四次变换,一步步推导出正反互补对称的变换方式。图中蓝色箭头表示旋转的拨轮以及它的旋转方向,橙黄色的箭头表示转换的顺序。下面逐步详细解释。

第一次变换:正反对称

把正面当作反面,把反面当作正面。从正面看,只按下 UR、顺时针转 UL;翻到背面看:

  • \(\{\mathrm{UR}\}\) 在背面对应位置是 \(\{\mathrm{UL}\}\),状态取反(按下 → 弹起),其余三个按钮全部按下。即背面按钮集为 \(\{\mathrm{UR}, \mathrm{DL}, \mathrm{DR}\}\)
  • 拨轮 UL 在背面对应 UR,方向取反(顺时针 → 逆时针)

效果向量正反面互换:

\[(F, B) \;\xrightarrow{swap}\; (B, F) \]

\[\begin{aligned} \text{正面:}\; \begin{matrix} 0 & 0 & -1 \\ 0 & 0 & 0 \\ -1 & 0 & -1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} +1 & +1 & 0 \\ +1 & +1 & +1 \\ +1 & +1 & +1 \end{matrix} \end{aligned} \]

此时操作为:\(\{\mathrm{UR}, \mathrm{DL}, \mathrm{DR}\}\) / \(\mathrm{UR}\) / 逆时针。

注:顺时针逆时针均以正面观察为准。正面看是顺时针,背面看则是逆时针。

第二次变换:逆时针取负

利用性质 4(逆时针取负),将逆时针变为顺时针,效果整体取负:

\[(B, F) \;\xrightarrow{neg}\; (-B, -F) \]

\[\begin{aligned} \text{正面:}\; \begin{matrix} 0 & 0 & +1 \\ 0 & 0 & 0 \\ +1 & 0 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} -1 & -1 & 0 \\ -1 & -1 & -1 \\ -1 & -1 & -1 \end{matrix} \end{aligned} \]

此时操作为:\(\{\mathrm{UR}, \mathrm{DL}, \mathrm{DR}\}\) / \(\mathrm{UR}\) / 顺时针。

第三次变换:逆时针旋转 90°(\(R^{-1}\)

利用上文旋转对称性,将魔表整体逆时针旋转 90°,把拨轮从 UR 移回 UL。按钮集随旋转变化:\(R^{-1}(\{\mathrm{UR}, \mathrm{DL}, \mathrm{DR}\}) = \{\mathrm{UL}, \mathrm{UR}, \mathrm{DR}\}\)

\[(-B, -F) \;\xrightarrow{R^{-1}}\; R^{-1}(-B, -F) \]

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & 0 & +1 \\ 0 & 0 & 0 \\ 0 & 0 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} -1 & -1 & -1 \\ -1 & -1 & -1 \\ -1 & -1 & 0 \end{matrix} \end{aligned} \]

此时操作为:\(\{\mathrm{UL}, \mathrm{UR}, \mathrm{DR}\}\) / \(\mathrm{UL}\) / 顺时针。

第四次变换:对角镜像(\(D\)

然而 \(\{\mathrm{UL}, \mathrm{UR}, \mathrm{DR}\}\) 还不是 \(\{\mathrm{UR}\}\) 的补集。\(\{\mathrm{UR}\}\) 的补集是 \(\{\mathrm{UL}, \mathrm{DL}, \mathrm{DR}\}\)

对比二者,差异仅在于 \(\mathrm{UR}\)\(\mathrm{DL}\) 互换了。这恰是 \(D\) 的作用——保持 \(\mathrm{UL}\)\(\mathrm{DR}\) 不变,交换 \(\mathrm{UR} \leftrightarrow \mathrm{DL}\)

施加 \(D\)

\[R^{-1}(-B, -F) \;\xrightarrow{D}\; D\big(R^{-1}(-B, -F)\big) \]

此时操作为:\(\{\mathrm{UL}, \mathrm{DL}, \mathrm{DR}\}\) / \(\mathrm{UL}\) / 顺时针——这正是 \(\{\mathrm{UR}\}\) 的补集。得到的效果为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & 0 & 0 \\ 0 & 0 & 0 \\ +1 & 0 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} 0 & -1 & -1 \\ -1 & -1 & -1 \\ -1 & -1 & -1 \end{matrix} \end{aligned} \]

实测验证完全吻合。

下表总结了从原始操作到互补操作的完整推导路径:

步骤 变换 操作 (按钮 / 拨轮 / 方向) 效果向量
\((F,B)\) 起点 \(\{\mathrm{UR}\}\) / \(\mathrm{UL}\) / 顺时针 \((F, B)\)
正反对称(\(swap\) \(\{\mathrm{UR,DL,DR}\}\) / \(\mathrm{UR}\) / 逆时针 \((B, F)\)
逆时针取负(\(neg\) \(\{\mathrm{UR,DL,DR}\}\) / \(\mathrm{UR}\) / 顺时针 \((-B, -F)\)
逆时针旋转 90°(\(R^{-1}\) \(\{\mathrm{UL,UR,DR}\}\) / \(\mathrm{UL}\) / 顺时针 \(R^{-1}(-B,-F)\)
对角镜像(\(D\) \(\{\mathrm{UL,DL,DR}\}\) / \(\mathrm{UL}\) / 顺时针 \(D(R^{-1}(-B,-F))\)

注意:这个性质不可使用 \(\{\mathrm{UL}\}\) 为例推导

若以 \(S = \{\mathrm{UL}\}\) 为起点推导,第三步得到的 \(R^{-1}(-B, -F)\)\(D\) 变换下碰巧不变——因为 \(\{UL\}\) 位于 \(D\) 的对称轴 \(\mathrm{UL}\!-\!\mathrm{DR}\) 上。这样推导必然会因为举例的特殊性而漏掉最后一步的 \(D\) 变换。换成不在对称轴上的 \(S = \{\mathrm{UR}\}\)\(D\) 的必要性就立刻暴露了。

3.3 互补公式

总结上述推导,互补变换 \(C\) 定义为四种变换的复合:

\[C(F,\,B) = D\big(R^{-1}(-B, -F)\big) \]

其中 \(R^{-1}\) 为逆时针旋转 90°(正面 CCW 90°,反面 CW 90°),\(D\) 为对角镜像(正面转置,反面反对角转置)。

我们可以尝试化简一下这个看起来复杂的式子。

\[\begin{aligned} \text{正面:}\; \begin{matrix} a & b & c \\ d & e & f \\ g & h & i \end{matrix} \;\;\xrightarrow{R^{-1}}\;\; \begin{matrix} c & f & i \\ b & e & h \\ a & d & g \end{matrix} \;\;\xrightarrow{D}\;\; \begin{matrix} c & b & a \\ f & e & d \\ i & h & g \end{matrix} \end{aligned} \]

\[\begin{aligned} \text{反面:}\; \begin{matrix} a & b & c \\ d & e & f \\ g & h & i \end{matrix} \;\;\xrightarrow{R^{-1}}\;\; \begin{matrix} g & d & a \\ h & e & b \\ i & f & c \end{matrix} \;\;\xrightarrow{D}\;\; \begin{matrix} c & b & a \\ f & e & d \\ i & h & g \end{matrix} \end{aligned} \]

可以看出,无论是正面还是反面,经过先旋转再对角线镜像之后,得到的结果都是一样的,都是原始矩阵的水平镜像。即:

\[D \cdot R^{-1} \equiv H \]

因此可以化简得到如下式子:

\[\boxed{\;C(F,\,B) = H(-B, -F)\;} \]

其中 \(H\) 表示水平镜像(左右翻转),对正反面适用相同:

\[H(M)_{r,c} = M_{r,\,2-c} \]

\[H:\; \begin{pmatrix} a & b & c \\ d & e & f \\ g & h & i \end{pmatrix} \;\longrightarrow\; \begin{pmatrix} c & b & a \\ f & e & d \\ i & h & g \end{pmatrix} \]

对于任意按钮集 \(S \subseteq \{\mathrm{UL}, \mathrm{UR}, \mathrm{DR}, \mathrm{DL}\}\),设其在 UL 拨轮下的效果向量为 \((F, B) = E(S, \mathrm{UL})\),则按钮集取补后的效果向量为:

\[E(S^c,\; \mathrm{UL}) = C\big(E(S,\; \mathrm{UL})\big) = H(-B, -F) \]

其中 \(S^c\) 表示 \(S\) 的补集(原来按下的弹起,原来弹起的按下)。

3.4 \(C\) 的数学含义

这个公式告诉我们两件事。

第一,按钮互补关系是精确的。 按钮取补后,效果向量只需正反对调并取负,再做水平镜像——\(C(F,B) = H(-B, -F)\)。毫无随机性。

第二,\(C\) 是一个对合变换。 按钮互补两次就回到原始状态,且 \(C\) 是线性变换。把 \(C\) 作用在效果向量上,直接得到互补按钮状态的效果,无需额外测量。

有了 \(C\),所有含 3 个按钮按下的操作(例如 \(\{\mathrm{UR}, \mathrm{DL}, \mathrm{DR}\}\))都可以从只含 1 个按钮的操作推导出来。这直接砍掉了一半的测量工作。


四、6 个原型 → 全部 64 种操作

现在我们来回答核心问题:到底需要测多少个原型?

答案是:我们只需要手动测出 6 种基本原型,即可利用上述探究出的三种对称性,完全推导得出全部 64 种基本操作的效果矩阵 \(A\)

4.1 6 个基本原型

固定拨轮为 UL、顺时针转 1 格,只改变按钮状态。以下 6 种代表不同的按钮模式:

原型 按钮集合 按钮模式说明
\(v_0\) \(\varnothing\) 无按钮按下
\(v_1\) \(\{\mathrm{UL}\}\) 只按本角
\(v_2\) \(\{\mathrm{UR}\}\) 只按相邻角
\(v_3\) \(\{\mathrm{DR}\}\) 只按对角
\(v_4\) \(\{\mathrm{UL}, \mathrm{UR}\}\) 本角 + 相邻角
\(v_5\) \(\{\mathrm{UL}, \mathrm{DR}\}\) 本角 + 对角

这些原型是“不可再约简”的——它们之间不能通过 \(R\)\(C\)\(D\) 相互转换,各自代表了不同的按钮模式类。下表依次给出了我动手测量出的 \(6\) 个基本原型的变换效果以及变换向量,由此表也可以看出,6个基本原型差异较大,互相之间无法通过变换来推导得出。

原型 按钮集合 正面变化 反面变化 效果向量 \(\mathbf{e}\)(按 \(F_1\!\sim\!F_9, B_1\!\sim\!B_9\) 顺序)
\(v_0\) \(\varnothing\) \(\begin{smallmatrix}+1&+1&+1\\+1&+1&+1\\+1&+1&+1\end{smallmatrix}\) \(\begin{smallmatrix}-1&0&-1\\0&0&0\\-1&0&-1\end{smallmatrix}\) \((1,1,1,1,1,1,1,1,1,\;11,0,11,0,0,0,11,0,11)^T\)
\(v_1\) \(\{\mathrm{UL}\}\) \(\begin{smallmatrix}+1&0&0\\0&0&0\\0&0&0\end{smallmatrix}\) \(\begin{smallmatrix}0&-1&-1\\0&-1&-1\\0&0&0\end{smallmatrix}\) \((1,0,0,0,0,0,0,0,0,\;0,11,11,0,11,11,0,0,0)^T\)
\(v_2\) \(\{\mathrm{UR}\}\) \(\begin{smallmatrix}+1&+1&0\\+1&+1&+1\\+1&+1&+1\end{smallmatrix}\) \(\begin{smallmatrix}0&0&-1\\0&0&0\\-1&0&-1\end{smallmatrix}\) \((1,1,0,1,1,1,1,1,1,\;0,0,11,0,0,0,11,0,11)^T\)
\(v_3\) \(\{\mathrm{DR}\}\) \(\begin{smallmatrix}+1&+1&+1\\+1&+1&+1\\+1&+1&0\end{smallmatrix}\) \(\begin{smallmatrix}-1&0&-1\\0&0&0\\0&0&-1\end{smallmatrix}\) \((1,1,1,1,1,1,1,1,0,\;11,0,11,0,0,0,0,0,11)^T\)
\(v_4\) \(\{\mathrm{UL},\mathrm{UR}\}\) \(\begin{smallmatrix}+1&0&+1\\0&0&0\\0&0&0\end{smallmatrix}\) \(\begin{smallmatrix}-1&-1&-1\\-1&-1&-1\\0&0&0\end{smallmatrix}\) \((1,0,1,0,0,0,0,0,0,\;11,11,11,11,11,11,0,0,0)^T\)
\(v_5\) \(\{\mathrm{UL},\mathrm{DR}\}\) \(\begin{smallmatrix}+1&0&0\\0&0&0\\0&0&+1\end{smallmatrix}\) \(\begin{smallmatrix}0&-1&-1\\-1&-1&-1\\-1&-1&0\end{smallmatrix}\) \((1,0,0,0,0,0,0,0,1,\;0,11,11,11,11,11,11,11,0)^T\)

4.2 从 6 个原型生成 16 种按钮状态

固定拨轮为 UL\(4\) 个按钮共有 \(2^4 = 16\) 种按下/弹起组合。我们可以用 \(C\)\(D\) 从 6 个原型推导出全部 16 种:

按钮集 生成方式 按钮集(左边的补集) 生成方式
\(\varnothing\) \(v_0\) \(\{\mathrm{UL},\mathrm{UR},\mathrm{DL},\mathrm{DR}\}\) \(C(v_0)\)
\(\{\mathrm{UL}\}\) \(v_1\) \(\{\mathrm{UR},\mathrm{DL},\mathrm{DR}\}\) \(C(v_1)\)
\(\{\mathrm{UR}\}\) \(v_2\) \(\{\mathrm{UL},\mathrm{DL},\mathrm{DR}\}\) \(C(v_2)\)
\(\{\mathrm{DL}\}\) \(D(v_2)\) \(\{\mathrm{UL},\mathrm{UR},\mathrm{DR}\}\) \(C(D(v_2))\)
\(\{\mathrm{DR}\}\) \(v_3\) \(\{\mathrm{UL},\mathrm{UR},\mathrm{DL}\}\) \(C(v_3)\)
\(\{\mathrm{UL},\mathrm{UR}\}\) \(v_4\) \(\{\mathrm{DL},\mathrm{DR}\}\) \(C(v_4)\)
\(\{\mathrm{UL},\mathrm{DL}\}\) \(D(v_4)\) \(\{\mathrm{UR},\mathrm{DR}\}\) \(C(D(v_4))\)
\(\{\mathrm{UL},\mathrm{DR}\}\) \(v_5\) \(\{\mathrm{UR},\mathrm{DL}\}\) \(C(v_5)\)

4.3 用旋转扩展到 4 个拨轮

以上都是固定拨轮 UL 的情况。现在对每个按钮状态 \(S\) 的效果向量应用旋转 \(R\),就得到其他三个角的对应操作:

拨轮 生成方式
\(\mathrm{UL}\) \(\mathbf{e}_{S,\mathrm{UL}}\)(直接由上表得到)
\(\mathrm{UR}\) \(\mathbf{e}_{S,\mathrm{UR}} = R(\mathbf{e}_{R^{-1}(S),\mathrm{UL}})\)
\(\mathrm{DR}\) \(\mathbf{e}_{S,\mathrm{DR}} = R^2(\mathbf{e}_{R^{-2}(S),\mathrm{UL}})\)
\(\mathrm{DL}\) \(\mathbf{e}_{S,\mathrm{DL}} = R^3(\mathbf{e}_{R^{-3}(S),\mathrm{UL}})\)

全部 4 拨轮 × 16 按钮状态 = 64 种操作,全部由 6 个原型生成。


五、验证:实测与预测吻合

5.1 举例验证

由上文已知,当 \(S = \{\mathrm{UR}\}, w = \mathrm{UL}\) 时,产生的变换效果为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & +1 & 0 \\ +1 & +1 & +1 \\ +1 & +1 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} 0 & 0 & -1 \\ 0 & 0 & 0 \\ -1 & 0 & -1 \end{matrix} \end{aligned} \]

对它进行 \(C\) 变换,即可预测得到:

\(S = \{\mathrm{UL},\mathrm{DL},\mathrm{DR}\}, w = \mathrm{UL}\) 时,产生的变换效果为:

\[\begin{aligned} \text{正面:}\; \begin{matrix} +1 & 0 & 0 \\ 0 & 0 & 0 \\ +1 & 0 & +1 \end{matrix} \qquad \text{反面:}\; \begin{matrix} 0 & -1 & -1 \\ -1 & -1 & -1 \\ -1 & -1 & -1 \end{matrix} \end{aligned} \]

与实测结果相符,即验证了预测的正确性。

5.2 总而言之

以上三种对称性的正确性不是凭空想象的,它们经过了实际验证。从已有的 6 个实测原型出发,我们可以用 \(C\)\(D\) 推算一些尚未实测的操作效果,然后动手验证。

以下是几个关键的验证:

预测 对称变换 实测结果
所有按钮都按下,转 UL 拨轮 对"无按钮按下"做 \(C\)\(C(v_0)\) 吻合
只按下 DL 按钮,转 UL 拨轮 对"只按 UR"做 \(D\)\(D(v_2)\) 吻合
只按 UL+DL,转 UL 拨轮 对"只按 UL+UR"做 \(D\)\(D(v_4)\) 吻合
只不按 UR(按 UL+DR+DL),转 UL 拨轮 对"只按 UR"做 \(C\)\(C(v_2)\) 吻合

四项预测全部正确。


六、结语

本文探究了魔表的三种对称性:

对称变换 作用 数学表达
\(R\)(旋转 90°) 四角循环映射 正面顺时针 90°,反面逆时针 90°
\(D\)(对角镜像) 交换 \(\mathrm{UR} \leftrightarrow \mathrm{DL}\) 正面转置,反面反对角转置
\(C\)(正反互补) 按钮取反 \(C(F,B) = H(-B,\,-F)\)

这三种对称性的核心价值在于:大幅压缩了需要实测的操作数量

第二篇文章中,我们面对的是 \(64\) 次手工标定的苦差事。现在有了对称性,只需要测 6 个原型操作,其余 \(58\) 个全部用 \(R\)\(C\)\(D\) 推导出来。

下一篇,我们将基于这 6 个原型和三种对称性,建立一个更精巧的数学模型——不再是手动测出 64 列的大矩阵,而是一个充分利用了魔表内在结构的对称模型。

posted @ 2026-07-24 09:43  H_Elden  阅读(54)  评论(0)    收藏  举报