对称群
设 Ω 为任何非空集合,令 SΩ 为所有从 Ω 到其自身的双射(即 Ω 的所有排列)的集合。集合 SΩ 在函数复合下构成一个群:∘。注意 ∘ 是 SΩ 上的一个二元运算,因为如果 σ:Ω→Ω 和 τ:Ω→Ω 都是双射,那么 σ∘τ 也是一个从 Ω 到 Ω 的双射。由于函数复合通常具有结合性,∘ 也是结合的。SΩ 的单位元是排列 1,定义为 1(a)=a,对于所有 a∈Ω。对于每一个排列 σ,都有一个(双边)逆函数 σ−1:Ω→Ω,满足 σ∘σ−1=σ−1∘σ=1。因此,所有群公理对于 (SΩ,∘) 都成立。这个群被称为集合 Ω 上的对称群。重要的是要认识到 SΩ 的元素是 Ω 的排列,而不是 Ω 本身的元素。
在 Ω={1,2,3,…,n} 的特殊情况下,Ω 上的对称群记作 Sn,即 n 阶的对称群(我们将在第6节中看到,SΩ 的结构仅取决于 Ω 的基数,而不是 Ω 本身的特定元素,所以如果 Ω 是具有 n 元素的任何有限集,那么 SΩ "看起来像" Sn。
)。群 Sn 将在本文中扮演重要角色,既作为一个自身具有相当大兴趣的群,也作为说明和激发一般理论的手段。
首先我们证明 Sn 的阶是 n !。因为它是有限的(命题 0.1),我们可以计算这个集合到自身的注入函数的数量。σ 的一个注入函数可以将数字 1 映射到 n 元素中的任何一个,{1,2,3,…,n};σ(2) 可以是这个集合中除了 σ(1) 之外的任何一个元素(因此对于 σ(2) 有 n−1 种选择);σ(3) 可以是除了 σ(1) 或 σ(2) 之外的任何一个元素(因此对于 n−2 有 n−2 种选择),依此类推。因此,从 {1,2,3,…,n} 到其自身的确切 n⋅(n−1)⋅(n−2)…2⋅1=n ! 个可能的注入函数。因此,确切地有 n ! 个 {1,2,3,…,n} 的排列,所以 Sn 中确切地有 n ! 个元素。
接下来我们描述一种高效的表示 σ 中元素的方法,我们将在全文中使用这种表示法,它被称为循环分解。
循环是一串整数,它代表 Sn 中的元素,这个元素将这些整数循环置换(并固定所有其他整数)。循环 (a1a2…am) 是这样一个置换,它将 ai 映射到 ai+1,1≤i≤m−1,并将 am 映射到 a1。例如,(213)是这样的置换,它将 2 映射到 1,1 映射到 3,3 映射到 2。一般来说,对于每个 σ∈Sn,从 1 到 n 的数字将被重新排列并分组为形式为 k 的循环。
(a1a2…am1)(am1+1am1+2…am2)…(amk−1+1amk−1+2…amk)
从中可以很容易地读出 σ 对从 1 到 n 的任何数字的作用,如下所示。对于任何 x∈{1,2,3,…,n},首先在上面的表达式中找到 x。如果 x 后面没有紧跟右括号(即 x 不是 k 循环之一的右端),那么 σ(x) 是紧在 x 右边的整数。如果 x 后面跟有右括号,那么 σ(x) 是以 x 结尾的循环开始的那个数(即,如果 x=ami 对于某个 i 成立,那么 σ(x)=ami−1+1(其中 m0 视为 0))。我们可以用以下方式表示对 σ 的这种描述:
1 我们将在第6节中看到,SΩ 的结构仅取决于 Ω 的基数,而不是 Ω 本身的特定元素,所以如果 Ω 是具有 n 元素的任何有限集,那么 SΩ "看起来像" Sn。
所有循环的乘积称为 σ 的循环分解。
我们现在给出一个计算元素 σ 在 Sn 中的循环分解的算法,并用一个特定的排列来演示这个算法。我们将这个算法的证明以及循环分解唯一性方面的完整分析推迟到第4章。
设 n=13 并且定义 σ∈S13 为
σ(1)=12,σ(2)=13,σ(3)=3,σ(4)=1,σ(5)=11,
σ(6)=9,σ(7)=5,σ(8)=10,σ(9)=6,σ(10)=4,
σ(11)=7,σ(12)=8,σ(13)=2.
显然,当 {1,2,…,n} 中的所有数字都出现在某个循环中时,这个过程自然停止。对于示例中的特定 σ,这给出
σ=(1128104)(213)(3117)(69).
循环的长度是出现在其中的整数的数量。长度为 t 的循环被称为 t -循环。如果两个循环没有共同的数字,则称这两个循环为 不相交的 。因此上面的元素 σ 是5个(两两)不相交循环的乘积:一个5-循环,一个2-循环,一个1-循环,一个3-循环,以及另一个2-循环。
从此我们约定1-循环不写出。因此,如果某个整数 i 不出现在排列 τ 的循环分解中,则理解为 τ(i)=i ,即 τ 固定 i 。Sn 的恒等排列的循环分解为 (1)(2)…(n) ,并且将简单地写作1。因此,算法的最后一步是:
因此,示例中特定 σ 的循环分解为
σ=(1128104)(213)(5117)(69)
这个约定的优点是,元素 τ 的 Sn 的循环分解也是排列在 Sm 中对于 m≥n 的循环分解,它作为 τ 在 {1,2,3,…,n} 上作用并固定 {n+1,n+2,…,m} 的每个元素。因此,例如,(12)是交换1和2的排列,并且在 S2,S3 或 S4 中固定所有较大的整数,等等。
另一个例子是,S3 的6个元素有以下循环分解:
群 S3
对于任何 σ∈Sn ,σ−1 的循环分解是通过将 σ 的循环分解中的每个循环中的数字按相反顺序写出获得的。例如,如果 σ=(1128104)(213)(5117)(69) 是之前描述的 S13 的元素,那么
σ−1=(4108121)(132)(7115)(96).
在 Sn 中计算乘积是直接的,考虑到在 Sn 中计算 σ∘τ 时是从右到左读取排列。只需“跟随”连续排列下的元素。例如,在乘积 (123)∘ (12)(34) 中,数字 1 通过第一个排列被送到 2,然后 2 通过第二个排列被送到 3,因此复合映射将 1 映射到 3。为了计算乘积的循环分解,我们需要接下来观察 3 发生了什么。它首先被送到 4,然后 4 被固定,所以 3 通过复合映射被映射到 4。类似地,4 首先被映射到 3,然后 3 被映射到 1,完成了乘积中的这个循环:(134)。最后,2 被送到 1,然后 1 被送到 2,所以 2 被这个乘积固定,因此 (1≥3)∘(1≥2)(3≤4)=(1≥4) 是乘积的循环分解。
作为额外的例子,
(12)∘(13)=(132) and (13)∘(12)=(123).
特别是这表明
Sn是非阿贝尔群 对所有的n≥3.
在循环分解中的每个循环 (a1a2…am) 可以被视为循环排列 a1,a2,…,am 并固定所有其他整数的排列。由于不相交的循环排列的是位于不相交集合中的数字,因此
不相交的循环可以交换。
因此,重新排列任何不相交循环的乘积中的循环(特别是在循环分解中)不会改变排列。
此外,由于给定的循环 (a1a2…am) 循环排列 {a1,a2,…,am},循环中的数字本身可以循环排列而不改变排列,即,
(a1a2…am)=(a2a3…ama1)=(a3a4…ama1a2)=…
=(ama1a2…am−1).
因此,例如,(12)=(21) 和 (1234)=(3412)。按照惯例,循环中出现的最小数字通常首先写出。
在处理循环时必须小心,因为一个置换可以以多种方式写成循环的任意乘积。例如,在 S3,(123)= (12)(23)=(13)(132)(13) 等等中。但是(正如我们将证明的),每个置换的循环分解是将置换表示为不相交循环乘积的唯一方式(循环的重新排列和每个循环内数字的循环置换除外)。将任意的循环乘积简化为不相交循环的乘积,可以让我们一眼就确定两个置换是否相同。这种表示法的另一个优点是,下面的练习是证明置换的阶是其循环分解中各循环长度的最小公倍数。