# 三阶魔方：从贴纸置换到 Rubik 群

面向：配合 TheMathFlow 可视化短片与可运行 demo，从第一性原理走到「群作用 → 不变量 → 复原」。

中文课（长版，【事实】/【视频观察】/【假设】标签）：[teach.html](../teach.html)（源 [teach.md](../teach.md)）。交互贴纸 demo：[index.html](../index.html)。Pages：https://weiwan-gmail.github.io/rubiks-cube-demo/

参考视频（**仅本地**，未上传本仓库）：`themathflow.mp4`  
来源：[TheMathFlow on X](https://x.com/TheMathFlow/status/2101154346583154801)

文中标注：

- **[事实]**：标准组合群论 / 魔方数学中可核对的内容（与视频是否画出公式无关）。
- **[视频观察]**：短片画面或旁白里实际出现的内容。
- **[假设]**：把画面与标准数学对象对齐时的解读；不是视频里写出的定理。

---

## 1. 状态是什么：54 张贴纸

**[事实]** 三阶魔方有 6 个面 × 9 个面格 = **54** 个有色贴纸位置。中心贴纸相对固定（若只允许标准面转动、不拆块），角块 8 个（各 3 色）、棱块 12 个（各 2 色）。

更干净的数学模型常改用**可动块**：

| 对象 | 数量 | 自由度（直观） |
|------|------|----------------|
| 角块 | 8 | 位置置换 + 朝向（扭转） |
| 棱块 | 12 | 位置置换 + 朝向（翻转） |
| 中心 | 6 | 定方位参考 |

贴纸模型与块模型等价：贴纸位置被块带着走。Demo 里用「54 贴纸置换」和视频的圆点一致；证明阶数时用块+朝向更省事。

**[视频观察]** 短片一侧是实体面转动，另一侧是色点排在 **三个交叠圆环** 的轨道上（点色对应六面）；面一转，某一环高亮且点同步滑动。还原时点收成六个单色菱形簇。片内**无文字、无公式**；X 帖包装可提 graph theory，但画面本身没有。

---

## 2. 一次面转 = 一个置换

**[事实]** 固定「已解」为恒等位形。六个面各有顺时针 90° 生成元，常记为 \(U,D,L,R,F,B\)（及平方、逆：\(U^2,U^{-1}\) 等）。

每个面转是集合 \(\{1,\ldots,54\}\)（或角/棱位置集合）上的一个**置换** \(\sigma\)：贴纸（或块）从位置 \(i\) 被送到 \(\sigma(i)\)。

- 转 90°：角上通常出现长度 4 的轮换，棱上亦然；该面中心不动。
- 转 180°：拆成对换的乘积。
- 逆转 = 置换的逆元。

连续操作对应置换的**乘法**（复合）。任意合法拧法都是这些面转置换生成的乘积。

---

## 3. Rubik 群

**[事实]** **Rubik 群** \(G\) 是由六个面转（作为置换，或作为「位置+朝向」上的更精细作用）生成的群：

\[
G = \langle U,D,L,R,F,B \rangle
\]

- **单位元** \(e\)：已还原状态（所有贴纸在原位、朝向正确）。
- 元素 \(g \in G\)：从还原态出发拧出的某个可达状态；也等同于一条把还原拧成该状态的动作序列（差一个关系式）。
- 阶 \(|G|\)（可达状态数）为

\[
|G| = 43{,}252{,}003{,}274{,}489{,}856{,}000
\]

（约 \(4.3\times 10^{19}\)）。这是对「角置换 × 棱置换 × 角朝向 × 棱朝向」施加下文奇偶/朝向约束后的精确计数，不是视频里写出的数。

**[假设]** 短片把「拧一下」画成色点在环上跳动，是在可视化**生成元在状态空间上的作用**；并未给出 \(G\) 的展示或关系表。

---

## 4. 为什么不能随便拧：三条经典不变量

若把角、棱当成可任意重排、任意扭转的积木，构型空间会更大。**只有满足下列约束的构型才在 \(G\) 里**（从还原态经面转可达）。

### 4.1 置换奇偶性（偶置换）

**[事实]** 每一个面转对「角块位置」诱导的置换是**偶置换**；对「棱块位置」也是偶置换。因此乘积之后：

- 角块位置置换 \(\pi_c \in A_8\)（偶），
- 棱块位置置换 \(\pi_e \in A_{12}\)（偶），

且更强地：**角置换与棱置换的奇偶性相同**（都是偶，或在某些记号下联动）。常见说法：不能只交换两个角而保持其余不变。

### 4.2 角块朝向（扭转总和对 3 为 0）

**[事实]** 每个角有 3 种朝向。规定还原为 0，顺/逆扭为 \(\pm 1 \bmod 3\)。任意可达状态满足

\[
\sum_{i=1}^{8} o_i \equiv 0 \pmod{3}.
\]

不能只扭一个角。

### 4.3 棱块朝向（翻转总和对 2 为 0）

**[事实]** 每个棱有 2 种朝向。可达状态满足

\[
\sum_{j=1}^{12} f_j \equiv 0 \pmod{2}.
\]

不能只翻一条棱。

这三条把「积木乱拼」空间砍到恰好 \(|G|\)。Demo 不必实现完整求解器；只要能应用生成元并检测「是否为单位元」即可验证群作用。

---

## 5. 环图在画什么？Cayley 图 / 状态图

**[视频观察]** 三个交叠环、环上色点、与实体面转同步；还原后六点簇按面分色。

**[假设 — 与标准对象对齐]**

1. **单步作用（局部）**  
   高亮的环在画**当前面转**如何沿一条（或合成的）轨道轮换贴纸：点 ≈ 贴纸位置，环上滑动 ≈ 该生成元轮换分解的几何画法。三环交叠是投影/示意布局，**不要**强制解读成「一面一环共六个」。

2. **不是整张 Cayley 图**  
   Rubik 群的（右）Cayley 图以 \(G\) 的元素为顶点，对每个生成元 \(s\) 画边 \(g \to gs\)。顶点数 = \(|G|\)，无法在短片里画全。因此短片是**生成元作用的示意**，不是 Cayley 图本身。

3. **状态图**  
   若顶点 = 可达状态、边 = 一次面转，则与 Cayley 图同构（从单位元出发的标记）。短片两侧对比强调：**物理立方体上的几何转动** 与 **置换/图上的跳跃** 是同一生成元的两种画法。

4. **「graph theory」包装**  
   合理解读是：魔方可看成有限群在有限集上的作用，或看成巨大正则图上的游走；短片用环把「置换的轮换」画成几何图，并不展开邻接谱或最短路算法。片内无此字样。

---

## 6. 从群作用到「复原」

**[事实]**

- 状态 = \(G\) 中元素 \(g\)（相对还原）。
- 拧序列 \(s_1 s_2 \cdots s_k\) 把状态从 \(g\) 变成 \(g s_1\cdots s_k\)（视复合约定而定；demo 须固定左乘或右乘并写清）。
- **复原** = 找到生成元上的词 \(w\)，使 \(g w = e\)，即 \(w = g^{-1}\)。
- 单位元判定：所有贴纸回到初始颜色布局（或块位置+朝向全对）。

完整 CFOP / Kociemba 等是在巨大 Cayley 图上找短词的工程；本项目的成功标准只需：**展示一次面转如何置换贴纸，以及一串动作后回到已解**。

---

## 7. 有限展示：若干个「=1」能否生成全部关系？

**[事实]** 令生成元为面转 \(a,b,c,d,e,f\)（及逆）。\(G\) 是自由群 \(F\) 模去正规子群 \(N=\ker(F\to G)\)。因 \(G\) 有限，必存在**有限展示**：有限个关系词 \(r_1,\ldots,r_m\)（每个代表 \(=1\)），使 \(N\) 等于它们的**正规闭包**（含共轭与乘积）。故「所有等于 1 的词都能由这几个关系复合出来」在群论意义上成立，复合须含 \(g r g^{-1}\)，不单是串乘。

**[实务]** 显式关系表往往很长；工程上更常用角/棱置换 + 朝向的三条不变量刻画 \(G\le\) 更大积木群，而不维护完整关系表。仅 \(a^4=1\) 与局部交换关系不足以穷尽全部关系。

## 8. 和 @DevBot demo 的接口建议

便于数学叙述与代码对齐（非强制 API）：

1. 固定贴纸编号 `0..53`（或按面 `U/D/L/R/F/B` × 9）。
2. 六个生成元各存为一个 `list[int]` 长度 54 的像：`perm[i] = σ(i)`。
3. `apply(state, move)`：按置换重排颜色数组。
4. `is_solved(state)`：与初始数组相等。
5. 可选：打印每面 3×3，或 ASCII/环状示意，呼应视频的「点在环上走」。

不变量检查（可选断言）：随机合法 move 序列后奇偶与朝向和应仍满足；非法手拧拼出的状态可用来展示「不在 \(G\) 中」。

---

## 9. 事实 / 假设对照表

| 主张 | 类别 |
|------|------|
| 54 贴纸；面转是置换；\(G=\langle U,D,L,R,F,B\rangle\) | 事实 |
| \|G\| 的精确值与三条不变量 | 事实 |
| 单位元 = 已解 | 事实 |
| 短片双侧：实体转面 ↔ 三环上色点同步 | 视频观察 |
| 短片含完整 Cayley 图或写出群公理/公式 | **否**（片内无文字公式） |
| 高亮环 = 当前面转的轮换轨道示意；三环为投影布局 | 假设（对齐用） |
| X 帖「graph theory」= 状态/Cayley 图视角的科普包装 | 假设 |

---

## 10. 路径

| 文件 | 路径 |
|------|------|
| 本文 | [docs/math.md](math.md) |
| 中文课 | [teach.html](../teach.html) / [teach.md](../teach.md) |
| 交互 demo | [index.html](../index.html) |
| Python | `python/cube.py`、`python/demo.py` |
| 样例输出 | [sample-output.txt](../sample-output.txt) |
| 视频 | `themathflow.mp4` 仅本地参考（未上传） |

如何运行：仓库根目录 `python3 python/demo.py`（与网页 Apply scramble / inverse 同一回路）。

