魔方的原理是什么?( 二 )


魔方的原理是什么?

文章插图
令 。M ={U, D, F, B, L, R} 。当任意面 f ∈ M 朝向我们时 。对 f 面 顺时针 旋转 90° 。被定义为 魔方的 基本操作(base operation) 。同样用 f 面 的 面标识 来表示 这种基本操作 。所以 M 也代表 魔方的全部基本操作 。
对于 。任意 基本操作 g, h ∈ M 。gh 称为 g 和 h 的 复合(compose) 。表示 先 g 操作 再 h 操作 的复合操作 。可以验证 。复合满足结合律 。这样以来 。以 M 为生成元 在复合操作下会生成一个群 G = (M) 。称为 魔方群(Rubik‘s cube group) 。其中 。G 的 幺元 。记为 1 。表示 没有进行任何操作的操作 。
什么是群?
群就是定义了一种运算的集合。其 满足:
集合对运算封闭 。即 。对于任意都有( 注意:和乘法运算类似 。习惯省略不写) ;
运算有分配律 。即 。对于任意都有 ;
有幺元 。即 。存在使得 对于 任意都有 ;
有逆元 。即 。对于任意都存在的逆元使得。
什么是 M 生成的群?
数学上定义:包括 M 中元素的 最小的群 。为M生成的群 。记为 (M) 。实际上 。可以 对 M 中任意操作 g 和 h 不断的 进行 复合运算 。如果得到的新复合操作 gh 不在 M 中 。就 gh 添加到 M 里 。直到 M 不再增加 。这样就得到了 (M) 。
同一基本操作 g 。连续四次 复合 就是 对 g 面 顺时针 旋转 360° 。这相当于 没有操作 。即 。
gggg = 1
从而有:
gg3 = 1
也就是说 g3就是 g 的逆元 g?1。相当于 对 g 面 逆时针 旋转 90° 。
另外 。由 gggg = 1 还可以得到:
g2g2 = 1
这说明 连续两次 复合 g2 的逆元 就是自己 。即 。顺时针 旋转 180° 相当于 逆时针 旋转 180°。
魔方状态
三阶魔方被细分为 3 × 3 × 3 = 27 个 立方小块(cubie) 。其中 。位于 中间核心的 那个 小块 不会受到 魔方操作 的影响到 。而对于 每个 面中心的 那个 小块魔方操作 同样无法改变它的位置 。因此 魔方操作 所能 影响到的 小块 为 27 - (1 + 6) = 20 个 。
这 20 个 受 魔方操作 作用的 小块 。又分为 两类:
位于魔方 8 个角 处的 角(corner)块 。它们有3个有效 小面(facet);
位于魔方 12 个棱 处的 棱(edge)块 。它们有2个有效 小面;
由于 。每个面的 中心块 保持位置不变 。因此对于打乱的魔方 。可以依照 中心块 来 确定魔方的各个面 方向 。魔方在初始(或 还原)状态下 。角块 和 棱块 的每个 小面 和 该小面 所在面 的 中心小块 颜色保持一致 。
我们用 角块(或 棱块) 的各小面 颜色所对应的 标识 的小写字母 的组合来标识 角块(或 棱块):
对于角块 。三个小面 x, y, z 。有 6 种排列方式 。这里 使用 从 u 或 d 开始 的 顺时针 排列方式 。即 。角块标识 xyz 保证 x = u/d 并且 x →y → z 是顺时针;
对于 棱块 。二个小面 x, y, 有 2 种 排列方式 。这里使用 从u 或 d(f 或 b) 开始 的 排列方式 。即 。棱块标识 xy 保证 x = u/d/f/b;
魔方的原理是什么?

文章插图
根据上面的规则 。八个角块分别表示为:ufl, urf, ubr, ulb; dbl, dlf, dfr, drb; 十二个棱块分别表示为:ub, ur, uf, ul; bl, br, fr, fl; db, dr, df, dl
注意:六个中心块 分别表示为:u, d, f, b, l, r 。核心块 一般用 o 表示。
更进一步 。对于角块 xyz 。我们用 xyz 表示 x 小面 。yzx 表示 y 小面 。zxy 表示 z 小面 。对于棱块 xy。我们用 xy 表示 x 小面 。用 yx 表示 y 小面 。于是 。我们就得到了 带有标注 的 8 × 3 + 12 × 2 = 48 个 小面 。将 。全体小面记为 T 。则 任意 操作 g ∈ G 就变成了 T 上的 一种 置换(位置变换) 。以 F 操作 为例 。
魔方的原理是什么?

文章插图
观察发现 。小面 fur经过 F 操作 置换 为 小面 flu 。即 。F(fur) = flu 。另有 F(flu) = fdl、F(fdl) = frd、F(frd) = flu 。于是 在 F 操作下 。以上 4 个置换 形成了 一个 置换圈:
魔方的原理是什么?

文章插图
我们称其为 轮换(cycle) 。记为 (fur flu fdl frd)。
参与轮换的 小面 可以是任意多个 。值得注意的是:任何一个小面 a 的 轮换 (a)相当于 不做 置换 。有,1 = () = (a)。
当然 。实际上 F 操作 包含 多个 轮换 。将这些轮换 以复合的方式 。聚合在一起 。就是定义了一个 完整 F 操作:
F =(fur flu fdl frd) (fu fl fd fr)(rfu ufl lfd dfr)(rf uf lf df)(rdf urf luf dlf)

推荐阅读