群论与魔方:群论基础知识
要了解破解魔方攻略背后的数学原理,「群论」(Group Theory)是必不可少的知识,本章介绍群论的基础知识。群论是「抽象代数学」(Abstract Algebra)的重要分支,是有关「群」(Group)的理论。抽象代数学跟一般代数学或线性代数学不同,其要旨不是解方程或方程组,而是研究各种代数结构的特性,「群」就是一种非常重要的代数结构。
群的基本定义
设有一个集合G和G上的「二元运算」(Binary Operation)「按摩床垫•」。如果G的元素和「•」满足以下「公理」(Axiom),我们便说(G, •)构成一个「群」(为了行文方便,有时可以把「群(G, •)」径直称为「群G」):
1. 「封闭性」(Closure)-对G中任何两个元素a和b而言,a • b ∈ G。
2. 「结合性」(Associativity)-对G中任何三个元素a、b和c而言,(a • b) • c = a • (b • c)。
3. 「单位元」(Identity)-存在G中一个元素e (称为「单位元」),使得对于G中任何元素a而言,e • a = a • e = a。
4. 「逆元」(Inver)-对于G中任何元素a而言,都有G中的元素a−1 (称为a的「逆元」),使得a • a−1 = a−1 • a = e。拌蒜
请注意由于「•」满足结合性,在写出三个或以上元素之间的运算时,可以不用括号,即写成a • b • c。如果某个运算涉及同一个元素,我们可以像一般乘法那样采用「指数」记法,例如可以把a • a • a写成a3。我们还可以仿照一般乘法规定零指数和负指数的定义如下:a0 = e,a−n = (a−1)n。另外,可以证明上述定义中的「单位元」是唯一的,而且对于G中任一元素a而言,其「逆元」a−1也是唯一的。根据「封闭性」,若a和b是G的元素,则(a • b)也是G的元素,因此我们也可以谈论(a • b)的逆元,而且这个逆元满足
(a • b)−1 = b−1 • a−1 (1)
如果(G, •)还满足「交换性」(Commutativity),即对G中任何两个元素a、b而言,a • b = b • a,我们便说(G, •)是「交换群」(Commutative Group)或「阿贝尔群」(Abelian Group)。
此外,如果在G中存在一个元素g使得对G中任何元素a,都有a = gn,其中n为0、正整数或负整数,我们便说(G, •)是「循环群」(Cyclic Group)。在此情况下,我们说G由g生成,记
作G = < g >,其中< g >称为g的「生成集合」(Span),其定义为< g > = {gn: n是整数},我们也说g是G的「生成元」(Generator)。
举例说,如果我们把G定为整数集Z上海交通大学校历,把「•」定为整数的加法「+」,那么容易验证(Z, +)构成一个交换群,这个群的「单位元」是0,对每个整数n而言,其「逆元」就是其负数−n。而且(Z, +)也是一个循环群,其生成元就是1,因为Z中的元素要么是0,要么是正整数,要么是负整数,而对任何正整数n而言,我们有n = 1 + 1 + ... 1 (共n个1),以及−n = (−1) + (−1) + ... (−1) (共n个−1)小白兔怎么折。由此我们有Z = < 1 >。
类似地,如果我们把G定为非零实数集R*,把「•」定为实数的乘法「×」,那么容易验证(R*, ×)水瓶座的女人也构成一个交换群,这个群的「单位元」是1,对每个非零实数x而言,其「逆元」就是其倒数1 / x。但(R*, ×)不是一个循环群,因为我们无法找到R*的生成元。
「群」是一个非常广泛的概念,其定义中的集合G的元素可以是各式各样的对象,除了上述较为具体的整数/非零实数外,还可以是某些抽象数学对象,例如「几何变换」。以下介绍一种特殊的几何变换-「对称变换」,即可保持几何图形的形状不变的变换,以下图为例:
上图显示一个等边三角形的三个顶点A、B、C以及三条对称轴。上图共有以下六种对称变换:恒等变换(Identity Transformation,记作I,即不作任何变换,亦等同于逆时针旋转0°)、逆时针旋转120° (记作R)、逆时针旋转240° (记作R2)、以通过三角形上方顶点(即上图中的A点)的轴为对称轴的反射(记作RA)、以通过三角形左下方顶点(即上图中的B点)的轴为对称轴的反射(记作RB)、以通过三角形右下方顶点(即上图中的C点)的轴为对称轴的反射(记作RC)(注1)。
我们可以把上述六种对称变换组成一个集合,记作S3 (下标"3"代表三角形)。这个集合中的元素有一种二元运算,称为「复合」(Composition),记作「•」。两个变换的「复合」就是先后进行该两个变换,举例说,RA • R2便代表先以通过A点的轴为对称轴进行反射,然后逆时针旋转120° (注2)。基于上述定义,容易推出(S3, •)构成一个群,称为「对称群」(Symmetry Group)。首先,任何两个对称变换的复合显然也是一个对称变换,例如RA • R2 = RB,因此「•」满足封闭性。其次,「•」显然也满足结合性。第三,I显然就是S3中的单位元。最后,每个对称变换都有其逆变换,而且这个逆变换显然也是对称变换,例如R−1 = R2,(RA)−1 = RA等。
我们也可以把S3的元素看成对顶点集合{A, B, C}进行「排列」(Permutation,亦译作「置换」)的结果,一个集合的排列就是该集合上的一个「双射」(Bijection)。例如前述的RA就相当于把A映像为A,B映射为C和C映射为B的变换。由于这个集合有3个元素,所以共有3! = 6种排列,刚好对应着前述的六种对称变换,因此S3也称为「排列群」(Permutation Group,亦译作「置换群」)(注3)。
(S3, •)既非交换群,亦非循环群。首先,变换的复合并不满足交换性。举例说,RA • R2 ≠ R2 • RA,因为上式的左方等于RB,而右方则等于RC。其次,S3也不存在生成元,因为旋转和反射是两类很不相同的变换,不能把某一类变换表达为重复进行另一类中某变换的结果。
子群
接着我们引入「子群」(Subgroup)的概念。给定群(G, •)和G的子集H,如果(H, •)本身也是群,那么我们说(H, •)是(G, •)的「子群」。由于H的运算跟G的运算相同,若(G, •)满足结合性,(H, •)自然也满足结合性,所以给定G的某子集H,如要检验(H, •)是否(G, •)的子群,只需检验
1. 「封闭性」-对H中任何两个元素a和b而言,a • b ∈ H。
2. 「单位元」-G的「单位元」e ∈ H。
3. 「逆元」-对于H中任何元素a而言,a−1 ∈ H。
如果在H中存在一个元素h使得对H中任何元素a,都有a = hn,其中n为整数,我们便说(H, •)是(G, •)的「循环子群」(Cyclic Subgroup),并记作H = < h >。
请注意即使G不是循环群,它也可以有循环子群。事实上,给定群G和G的某个元素h,不难构造出由h生成的循环子群< h >,方法是先写出h0 = e,然后依次写出h、h2 ... 直至hn = e,其中n为使hn = e成立的最小正整数。容易验证< h > = {e, h, h2 ... hn−1}是G的一个循环子群。请注意对G中任何元素h而言,必有某个最小的正整数n使得hn = e,我们把这个n称为h的「阶」(Order),这个数字也就是< h >的基数。
以前述的等边三角形对称群S3为例,这个群不是循环群,但却包含多个循环子群。举例说,所有旋转变换便组成一个循环子群:< R > = {I, R, R2}。此外,每个反射变换也各自
生成一个循环子群,例如< RA > = {I, RA}。最后,I本身也构成一个(平凡)循环子群:< I > = {I}。
魔方群
把以上介绍的内容推广应用于魔方,便可得到一个「魔方群」(Rubik Group),记作(RUBIK, •),其中集合RUBIK包含对魔方的各种操作,这些操作包括笔者在上一章,即《群论与魔方:魔方的基本概念》中介绍的操作以及这些操作的复合。举例说,上一章介绍了以下两种操作:「顺时针旋转前面90°」(F)和「逆时针旋转上面180°」(U−2),这两个操作的复合(F • U−2贴对联图片)也是一个操作,代表「先顺时针旋转前面90°,然后再逆时针旋转上面180°」,因此也是RUBIK的元素(注4)。「魔方群」的二元运算「•」则代表魔方上各种运算之间的复合。
请注意「复合」(•)在这里出现于两个不同层面。一方面它是RUBIK中元素之间的二元运算,另一方面它又是RUBIK中某些复合元素的代号的一个组成部分,例如前述的F • U−2。之所以出现这个情况,是因为RUBIK包含非常多元素。根据某些数学家的计算,RUBIK元素的数目为
8! × 12! × 38 × 212 / 12 = 4.3252 × 1019 (2)
由于RUBIK的元素极多,难以亦无必要为每一个元素提供一个独特的代号,所以无可避免要把某些复合元素写成其它较简单元素的复合。不过,有时我们也需要区分上述两个层面。为此,以下将把作为复合元素代号一部分的「•」略去不写。在这个约定下,FU−2代表一个复合元素,而F • U−2则代表两个元素的复合。
容易验证(RUBIK, •)满足上述公理。首先,如前所述,任意两个操作的复合显然也是一个操作,故满足封闭性。其次,操作之间的复合显然满足「结合性」。第三,RUBIK的单位元就是「恒等变换」,即不作任何操作,以下记作I。最后,RUBIK的每个元素都有逆元。对于简单元素而言,其逆元在上一章中已有所定义,例如F的逆元就是F−1。对于复合元素而言,只需应用前述的公式(1)便可找到其逆元,例如FU−2的逆元就是U2F我与孩子共成长−1。RUBIK显然不是交换群,因为调换两个操作的先后次序,所得结果可能不同,例如F • U ≠昆凌姐姐 U • F。
RUBIK包含多个循环子群,上一章介绍的各种90°旋转(包括顺时针和逆时针)便可生成4阶的循环子群,例如< F > = {I, F, F2, F−1}和< F−1 > = {I, F−1, F2, F}。除此以外,各种180°
旋转也可生成2阶的循环子群,例如< F2 > = {I, F2}。
从某一角度看,我们可以把RUBIK看成某个排列群的子群,这个排列群的元素是对魔方小面的所有可能排列。由于魔方共有54个小面,这个排列群可记作S54,其元素数目是