本博文仍在施工中,如果作者有时间的话。

用线性代数证明

这是一个使用线性代数进行的证明。


设:
状态空间为二元域 $\mathbb{F}_2 = {0, 1}$ 上的9维向量空间 $V = \mathbb{F}_2^9$,网格的初始状态为向量 $\vec{s} \in V$,则我们的目标状态(全1)为向量 $\vec{t} = (1, 1, 1, 1, 1, 1, 1, 1)^T \in V$。

又记按键操作为向量 $\vec{x} \in V$,其中 $x_i = 1$ 表示按了第 $i$ 个格子, $x_i = 0$ 表示未按。

令操作矩阵 A 中 $A_{ij}=1$ 当且仅当按第 j 个格子会翻转第 i 个格子。(例如,按第5个格子(中心)会翻转2, 4, 5, 6, 8,所以 A 的第5列为 (0,1,0,1,1,1,0,1,0)T)。

于是我们有:对初始状态 $\vec{s}$ 执行操作 $\vec{x}$,得到的最终状态 $\vec{s}_{final}$ 为:

(所有运算均在 $\mathbb{F}_2$ 上,加法即异或)

要证:
对于任意的初始状态 $\vec{s} \in V$,都存在一个操作 $\vec{x} \in V$,使得 $\vec{s}_{final} = \vec{t}$ ,有:

移项(在 $\mathbb{F}_2$ 中 $a+b=c \iff a=c-b \iff a=c+b$)得:

接下来令 $\vec{b} = \vec{t} + \vec{s}$

由于 $\vec{s}$ 可以是 $V$ 中 $2^9$ 个向量中的任意一个,所以 $\vec{b}$ 也可以是 $V$ 中 $2^9$ 个向量中的任意一个($\vec{s} \mapsto \vec{t} + \vec{s}$ 是一个双射)。

即证,对于任意的 $\vec{b} \in V$,方程 $A\vec{x} = \vec{b}$ 恒有解。

又根据线性代数基本定理,上述命题等价于:矩阵 $A$ 是可逆的(非奇异的)。

即证,矩阵 A 的零空间(Kernel)是平凡的,即齐次线性方程组 Ax=0 只有唯一解 x=0。

(注意这里x=0 的物理意义是“一个键都不按”,Ax=0 的物理意义是“操作后所有格子都未翻转”)。

证明:

我们有方程组 $A\vec{x} = \vec{0}$。我们将 $\vec{x}$ 的分量 $x_1, \dots, x_9$ 视为 $3 \times 3$ 的按键网格,$\vec{b} = A\vec{x}$ 的分量 $b_1, \dots, b_9$ 视为 $3 \times 3$ 的翻转结果网格。

若 $b_1 = \dots = b_9 = 0$。

  1. 考察第一行格子 ($b_1, b_2, b_3$):

    • $b_1 = x_1 + x_2 + x_4 = 0 \implies x_4 = x_1 + x_2$ (式1)

    • $b_2 = x_1 + x_2 + x_3 + x_5 = 0 \implies x_5 = x_1 + x_2 + x_3$ (式2)

    • b3=x2+x3+x6=0⟹x6=x2+x3 (式3)

      (这表明第二行的按键 x4,x5,x6 由第一行的按键 x1,x2,x3 唯一确定)

  2. 考察第二行格子 ($b_4, b_5, b_6$):

    • b4=x1+x4+x5+x7=0⟹x7=x1+x4+x5

      代入 (1), (2): x7=x1+(x1+x2)+(x1+x2+x3)=x1+x3 (式4)

    • b5=x2+x4+x5+x6+x8=0⟹x8=x2+x4+x5+x6

      代入 (1), (2), (3): x8=x2+(x1+x2)+(x1+x2+x3)+(x2+x3)=0 (式5)

    • b6=x3+x5+x6+x9=0⟹x9=x3+x5+x6

      代入 (2), (3): x9=x3+(x1+x2+x3)+(x2+x3)=x1+x3 (式6)

      (这表明第三行的按键 x7,x8,x9 也由 x1,x2,x3 唯一确定)

  3. 考察第三行格子 ($b_7, b_8, b_9$):

    • b7=x4+x7+x8=0

      代入 (1), (4), (5): (x1+x2)+(x1+x3)+0=0⟹x2+x3=0 (A)

    • b8=x5+x7+x8+x9=0

      代入 (2), (4), (5), (6): (x1+x2+x3)+(x1+x3)+0+(x1+x3)=0⟹x1+x2+x3=0 (B)

    • b9=x6+x8+x9=0

      代入 (3), (5), (6): (x2+x3)+0+(x1+x3)=0⟹x1+x2=0 (C)

则我们必须同时解出 x1,x2,x3 满足以下约束条件:

(A) x2+x3=0

(B) x1+x2+x3=0

(C) x1+x2=0

  1. 将 (A) 代入 (B)得 $x_1 + (x_2 + x_3) = 0 \implies x_1 + 0 = 0 \implies x_1 = 0$
  2. 将 $x_1 = 0$ 代入 (C)得 $0 + x_2 = 0 \implies x_2 = 0$
  3. 将 $x_2 = 0$ 代入 (A)得 $0 + x_3 = 0 \implies x_3 = 0$

则 $x_1 = x_2 = x_3 = 0$。将它们代入 (式1) 至 (式6),可得 $x_4=0, x_5=0, x_6=0, x_7=0, x_8=0, x_9=0$。

于是$A\vec{x} = \vec{0}$ 的唯一解是 $\vec{x} = \vec{0}$。

因此矩阵 $A$ 是可逆的,对于任意 $\vec{b} \in V$,方程 $A\vec{x} = \vec{b}$ 都有唯一解 $\vec{x} = A^{-1}\vec{b}$,且对于任意初始状态 $\vec{s}$,都存在唯一的操作 $\vec{x}$,使得 $A\vec{x} = \vec{t} + \vec{s}$ 成立。

故所有 $2^9$ 种初始情况都一定能转变为全1。证毕。

用群论证明

该状态群和操作群皆为阿贝尔群


我们记状态群 ($S$)为:

  • 元素($e_S$):所有 $2^9$ 种可能的 $3 \times 3$ 网格状态。每个状态 $s$ 都是一个 $\mathbb{F}_2^9$ 中的向量。
  • 运算 ($\oplus$):对应格子逐个进行的异或(XOR)操作,即向量加法 $\vec{s}_1 + \vec{s}_2$(在 $\mathbb{F}_2$ 上)。

又记操作群 ($G$):

  • 元素($e_G$):所有 $2^9$ 种可能的“按键组合”。每个操作 $x$ 也是一个 $\mathbb{F}_2^9$ 中的向量,代表是否按下第 $i$ 个键。
  • 运算 ($\oplus$):两个操作组合的叠加,也是逐元素的 XOR 操作 $\vec{x}_1 + \vec{x}_2$。

接下来我们定义一个映射 $\phi: G \to S$,将操作群的元素(按键组合 $\vec{x}$)映射到状态群的元素(产生的翻转图样 $\vec{b}$),即:

其中 $A$ 是 $9 \times 9$ 的“操作矩阵”(如前所述)。

注意到这个映射 $\phi$ 是一个群同态:

(根据 $\mathbb{F}_2$ 上的矩阵乘法分配律,且加法即 $\oplus$ 运算。)

要证,对于任意初始状态 ,找到操作 ,使得最终状态为 即:

移项得:

。由于 可以是 中的任意元素, 也可以是 中的任意元素。

等价于证明, 同态 $\phi: G \to S$ 是满射(Surjective)

证明:

由于 ∣G∣=∣S∣=29,根据有限群同态的基本定理,对于 ϕ:G→S,有:

我们只需要证明 ϕ 的核(Kernel)是平凡的,即 $\ker(\phi) = {\vec{x} \in G \mid \phi(\vec{x}) = e_S }$ ,其中 $e_S = \vec{0}$(全 $0$ 网格)。

因此,我们需证明:

这完全回到了线性代数中证明齐次线性方程组 $A\vec{x} = \vec{0}$ 只有平凡解的问题。根据前一证明,我们已经严谨地推导出:

所以,$\ker(\phi) = {\vec{0}} = {\vec{e}_G}$,核是平凡的。

由于 ker(ϕ) 是平凡的,同态 ϕ 是单射,又因为 ∣G∣=∣S∣,故 ϕ 也是满射。满射性保证了对于 S 中的任意“所需翻转图样” b,都存在至少一个按键组合 x∈G 满足 ϕ(x)=b。

因此,无论初始状态 $\vec{s}_{initial}$ 是什么,总存在操作 $\vec{x}$ 能使网格达到全 $1$ 的目标状态。证毕。