文章目录
废话
群论好强啊……
但其实并不是个太难理解的东西呢qwq。
为了方便理解,不会有出现大量数学符号堆在一起的地方。
下面进入正题。
群
定义
群其实就是一个集合加上了若干个限制。
一般将群记作 ( G , ∗ ) (G,*) (G,∗), G G G 是一个集合, ∗ * ∗ 是集合 G G G 内的二元运算。( ∗ * ∗ 可以是 + − × ÷ +~-~\times~\div + − × ÷ 甚至是 ∪ ∩ \cup~\cap ∪ ∩,这取决于集合 G G G 内的元素是什么,以及你想怎么用这个群)
对于一个群 ( G , ∗ ) (G,*) (G,∗),需要满足:
- 封闭性: 对于任意 a , b ∈ G a,b\in G a,b∈G,一定满足 ( a ∗ b ) ∈ G (a*b)\in G (a∗b)∈G
- 结合律: 对于任意 a , b , c ∈ G a,b,c\in G a,b,c∈G,一定满足 a ∗ ( b ∗ c ) = ( a ∗ b ) ∗ c a*(b*c)=(a*b)*c a∗(b∗c)=(a∗b)∗c
- 有单位元: 集合 G G G 中一定包含一个元素 e e e,满足对于任意 a ∈ G a\in G a∈G,都有 a ∗ e = a a*e=a a∗e=a,我们将这个 e e e 记为单位元,一个群内的单位元是唯一的
- 存在逆元: 对于任意 a ∈ G a\in G a∈G,都存在 b ∈ G b\in G b∈G 满足 a ∗ b = e a*b=e a∗b=e,即 b = a − 1 b=a^{-1} b=a−1
打个比方, ( Z , + ) (Z,+) (Z,+) 就是一个群,对于任意整数 a , b a,b a,b, a + b a+b a+b 也一定是整数,故 a + b a+b a+b 也在 Z Z Z 中(封闭性),加法显然满足结合律, 0 0 0 就是单位元,对于任意整数 a a a,它的逆元就是 − a -a −a,也在 Z Z Z 中。
相关概念
阶: G G G 集合的大小称为群 ( G , ∗ ) (G,*) (G,∗) 的阶,记为 ∣ G ∣ |G| ∣G∣。
有限群&无限群: 如果 ∣ G ∣ |G| ∣G∣ 无限大,则称这个群为无限群,否则是有限群。
打个比方,上面的 ( Z , + ) (Z,+) (Z,+) 这个群就是无限群,有限群的例子下面有。
置换
定义
我们一般描述成这样:
(
1
2
3
.
.
.
n
−
1
n
a
1
a
2
a
3
.
.
.
a
n
−
1
a
n
)
\left( \begin{matrix} 1 & 2 & 3 & ... & n-1 & n\\ a_1 & a_2 & a_3 & ... & a_{n-1} & a_n \end{matrix} \right)
(1a12a23a3......n−1an−1nan)
其中 a a a 是 1 1 1 ~ n n n 的一个排列,这个置换表示将位置 1 1 1 上的元素放到位置 a 1 a_1 a1,位置 2 2 2 上的元素放到 a 2 a_2 a2……
由于其中涉及到 n n n 个元素,所以称其为 n n n 元置换。
举个例子,假设有一个置换
T
T
T:
(
1
2
3
4
4
3
1
2
)
\left( \begin{matrix} 1 & 2 & 3 & 4\\ 4 & 3 & 1 & 2 \end{matrix} \right)
(14233142)
对于序列 A = ( 4 , 3 , 2 , 1 ) A=(4,3,2,1) A=(4,3,2,1),将 T T T 作用在 A A A 上,得到 A ′ = ( 2 , 1 , 3 , 4 ) A'=(2,1,3,4) A′=(2,1,3,4)。
可以发现,将列进行调换不影响答案,比如说可以将上面的置换
T
T
T 改成:
(
2
4
3
1
3
2
1
4
)
\left( \begin{matrix} 2 & 4 & 3 & 1\\ 3 & 2 & 1 & 4 \end{matrix} \right)
(23423114)
将这个形式的 T T T 作用在 A A A 上依然能得到 A ′ A' A′,原因显然。
连接
这是关于置换的运算,对于置换 A , B A,B A,B, A B AB AB 即表示 A A A 和 B B B 的连接运算。
连接运算的规则是这样的:
(
a
1
a
2
a
3
.
.
.
a
n
b
1
b
2
b
3
.
.
.
b
n
)
(
b
1
b
2
b
3
.
.
.
b
n
c
1
c
2
c
3
.
.
.
c
n
)
=
(
a
1
a
2
a
3
.
.
.
a
n
c
1
c
2
c
3
.
.
.
c
n
)
\left( \begin{matrix} a_1 & a_2 & a_3 & ... & a_n\\ b_1 & b_2 & b_3 & ... & b_n \end{matrix} \right) \left( \begin{matrix} b_1 & b_2 & b_3 & ... & b_n\\ c_1 & c_2 & c_3 & ... & c_n \end{matrix} \right)= \left( \begin{matrix} a_1 & a_2 & a_3 & ... & a_n\\ c_1 & c_2 & c_3 & ... & c_n \end{matrix} \right)
(a1b1a2b2a3b3......anbn)(b1c1b2c2b3c3......bncn)=(a1c1a2c2a3c3......ancn)
循环
对于一个
n
n
n 阶循环
(
a
1
a
2
a
3
.
.
.
a
n
−
1
a
n
)
(a_1a_2a_3...a_{n-1}a_n)
(a1a2a3...an−1an),它表示这样一个置换:
(
a
1
a
2
a
3
.
.
.
a
n
−
1
a
n
a
2
a
3
a
4
.
.
.
a
n
a
1
)
\left( \begin{matrix} a_1 & a_2 & a_3 & ... & a_{n-1} & a_n\\ a_2 & a_3 & a_4 & ... & a_n & a_1\\ \end{matrix} \right)
(a1a2a2a3a3a4......an−1anana1)
对于一个置换,我们可以将其表示为若干个不相交循环的乘积(并不是乘法的乘积,感性理解一下就好)。
比如说,对于这个置换:
(
1
2
3
4
3
2
1
4
)
\left( \begin{matrix} 1 & 2 & 3 & 4\\ 3 & 2 & 1 & 4 \end{matrix} \right)
(13223144)
就可以表示成 ( 1 3 ) ( 2 ) ( 4 ) (1~3)(2)(4) (1 3)(2)(4)。
证明很显然,这里不赘述了。(不懂的话可以去做这题 找不到其他有这题的网站了……)
置换群
置换群就是由置换组成的群,运算就是连接。
举个例子,假设有一个正方形,四个顶点染了色,可以旋转或翻折。那么置换就有 8 8 8 种:
- 不动,顺时针转 90 ° , 180 ° , 270 ° 90\degree,180\degree,270\degree 90°,180°,270°, 4 4 4 种
- 以两条对边的中点为轴翻转 180 ° 180\degree 180°,有 2 2 2 组对边
- 以两个对点为轴翻转 180 ° 180\degree 180°,有 2 2 2 组对点
显然,这
8
8
8 个置换可以组成一个置换群,由于这些置换包含了所有的置换方式,所以肯定满足封闭性,连接运算显然满足结合律,单位元就是不动
,逆元就是反着操作。
以及,这是一个有限群。
陪集
设 H H H 为 G G G 的一个子群(也需要满足上面 4 4 4 点限制), a ∈ G a\in G a∈G,那么 a H aH aH 称为 H H H 的左陪集, H a Ha Ha 称为 H H H 的右陪集。(注意,陪集不是群,不需要满足 4 4 4 点限制)
其中, a H = { a x ∣ x ∈ H } , H a = { x a ∣ x ∈ H } aH=\{ax|x\in H\},Ha=\{xa|x\in H\} aH={ax∣x∈H},Ha={xa∣x∈H}。
下面性质的证明都只考虑左陪集,因为右陪集的证明是基本一样的。
性质1
如果 a ∈ H a\in H a∈H,那么 a H = H aH=H aH=H。
证明很显然,因为 H H H 内已经有 a a a 了,根据封闭性,对于任意 b ∈ H b\in H b∈H 都存在 ( a ∗ b ) ∈ H (a*b)\in H (a∗b)∈H,所以 a H aH aH 不会比 H H H 多出任何元素。
性质2
H H H 的所有陪集的大小都等于 ∣ H ∣ |H| ∣H∣。
对于一个陪集 a H aH aH,假如 a ∈ H a\in H a∈H,那么根据性质 1 1 1,可以得到 ∣ a H ∣ = ∣ H ∣ |aH|=|H| ∣aH∣=∣H∣。
假如 a ∉ H a\not\in H a∈H,那么 a H ∩ H = ∅ aH \cap H=\empty aH∩H=∅,且 a H aH aH 内没有相同的元素,根据陪集的定义,显然有 ∣ a H ∣ = ∣ H ∣ |aH|=|H| ∣aH∣=∣H∣。
性质3
如果 b ∈ a H b\in aH b∈aH,那么有 b H = a H bH=aH bH=aH。
因为 b ∈ a H b\in aH b∈aH,所以 b b b 可以表示为 a ∗ x a*x a∗x,所以 b H = a ∗ x H = a H bH=a*xH=aH bH=a∗xH=aH。
性质4
根据性质 3 3 3,可以得到这样的推论:如果 a H ∩ b H ≠ ∅ aH\cap bH\ne \empty aH∩bH=∅,那么 a H = b H aH=bH aH=bH。
证明很显然,设 c ∈ ( a H ∩ b H ) c\in (aH\cap bH) c∈(aH∩bH),那么就有 b H = c H = a H bH=cH=aH bH=cH=aH。
拉格朗日定理
对于有限群 G G G 的任意子群 H H H,都有 ∣ H ∣ ∣ ∣ G ∣ |H|||G| ∣H∣∣∣G∣。
人话翻译: G G G 的阶是 H H H 的阶的倍数。
不要被拉格朗日吓到了,证明不难。
首先有一个结论: H H H 的所有陪集的并集等于 G G G。证明很显然。
又因为, H H H 的陪集 a H aH aH 要么满足 H = a H H=aH H=aH,要么满足 H ∩ a H = ∅ H\cap aH=\empty H∩aH=∅,所以可以将 G G G 划分为若干块,每一块是 H H H 的一个陪集,根据性质2,每一块的大小都是 ∣ H ∣ |H| ∣H∣,所以 ∣ H ∣ ∣ ∣ G ∣ |H|||G| ∣H∣∣∣G∣,以及 ∣ G ∣ ∣ H ∣ \frac {|G|} {|H|} ∣H∣∣G∣ 就等于块数。
以及,下面都只考虑有限群。
轨道-稳定集定理
这个定理主要用来辅助证明burnside定理。
首先给两个定义:
- 对于一个状态 k k k,将置换群 G G G 作用在 k k k 上,所有能够转移到的状态记录在集合 E k E_k Ek 中,我们称 E E E 为等价类, E k E_k Ek 是 k k k 所在的等价类
- 对于一个状态 k k k,假如一个置换 T T T 作用在 k k k 上依然得到 k k k,那么将 T T T 记录在 Z k Z_k Zk 中, Z k Z_k Zk 表示作用在 k k k 上依然得到 k k k 的置换的集合。
轨道-稳定集定理:
对于任意状态 k k k,都有 ∣ E k ∣ × ∣ Z k ∣ = ∣ G ∣ |E_k|\times |Z_k|=|G| ∣Ek∣×∣Zk∣=∣G∣。
先给个例子理解一下,就用百度百科上的正方形顶点二着色问题:
一共有
4
4
4 种置换:不动,旋转
90
°
,
180
°
,
270
°
90\degree,180\degree,270\degree
90°,180°,270°,显然他们可以组成一个置换群
(
G
,
连
接
)
(G,连接)
(G,连接)。
这里没有像上面一样考虑翻折操作,因为这里只需要这四种置换就能组成置换群,换言之,在这题中任意翻折操作等价于某个旋转操作。(你可以试试看,对于任意状态 a a a,假如翻折能得到状态 b b b,那么 a a a 通过旋转也一定能得到状态 b b b)
考虑状态
2
2
2,在
G
G
G 的作用下能得到的状态有
E
2
=
{
2
,
3
,
4
,
5
}
E_2=\{2,3,4,5\}
E2={2,3,4,5},作用在状态
2
2
2 上依然得到状态
2
2
2 的置换只有不动
,即
∣
Z
2
∣
=
1
|Z_2|=1
∣Z2∣=1,又因为
∣
G
∣
=
4
|G|=4
∣G∣=4,所以有
∣
E
2
∣
×
∣
Z
2
∣
=
∣
G
∣
|E_2|\times |Z_2|=|G|
∣E2∣×∣Z2∣=∣G∣。
再看状态 1 1 1,在 G G G 的作用下能得到的状态有 E 1 = { 1 } E_1=\{1\} E1={1},作用在状态 1 1 1 上依然能得到状态 1 1 1 的置换有 4 4 4 种(显然状态 1 1 1 怎么转都不变),即 ∣ Z 1 ∣ = 4 |Z_1|=4 ∣Z1∣=4,也满足 ∣ E 1 ∣ × ∣ Z 1 ∣ = ∣ G ∣ |E_1|\times |Z_1|=|G| ∣E1∣×∣Z1∣=∣G∣。
轨道-稳定集定理 证明:
首先,
Z
k
Z_k
Zk 其实是
G
G
G 的一个子群,因为它包含了所有作用在
k
k
k 上不变的置换,所以满足封闭性,连接运算满足结合律,逆元就是反着操作,由于顺着操作不会变,所以反着操作也不会变,所以反着操作
这个置换也一定在
Z
k
Z_k
Zk 中,单位元就是不动
,很显然不动
这个置换一定在所有
Z
Z
Z 里面。
再看 E k E_k Ek 中的状态,对于一个状态 p ( p ≠ k ) p(p\ne k) p(p=k),从 k k k 转移到 p p p 一定要用到一个 Z k Z_k Zk 以外的置换 a a a,那么就存在一个 Z k Z_k Zk 的陪集 a Z k aZ_k aZk,且 Z k ∩ a Z k = ∅ Z_k\cap aZ_k=\empty Zk∩aZk=∅。
结合性质 3 3 3 以及在拉格朗日定理中提到的将 G G G 进行分块,我们知道,对于任意 b ∈ a H b\in aH b∈aH,都有 b H = a H bH=aH bH=aH,也就是说,在 G G G 中有 ∣ H ∣ |H| ∣H∣ 个置换可以将 H H H 变成陪集 a H aH aH,且 a H = H aH=H aH=H,不妨称这些置换为同类置换,显然的,对于子群 H H H 而言,有 ∣ G ∣ ∣ H ∣ \frac {|G|} {|H|} ∣H∣∣G∣ 种不同类置换。
可以发现一个性质 P P P:对于状态 k k k,同类的置换 b ∈ a Z k b\in aZ_k b∈aZk 作用在 k k k 上时,得到的新状态 K K K 都是相同的。证明很显然,所有本质相同的 b b b 都可以表示为 a ∗ x a*x a∗x( ∗ * ∗ 是连接运算),所以 b b b 作用在 k k k 上 等价于 先让 x x x 作用在 k k k 上,再让 a a a 作用在 k k k 上,由于 x ∈ Z k x\in Z_k x∈Zk,所以 x x x 在 k k k 上作用完后依然得到 k k k,所以所有 b ∈ a H b\in aH b∈aH 在 k k k 上作用都等价于 a a a 在 k k k 上作用。
此时, k k k 一共可以置换到 ∣ E k ∣ |E_k| ∣Ek∣ 种状态,根据性质 P P P,我们可以知道,这说明在所有置换中,有 ∣ E k ∣ |E_k| ∣Ek∣ 种本质不同的置换,于是得到 ∣ E k ∣ = ∣ G ∣ ∣ H ∣ |E_k|=\frac {|G|} {|H|} ∣Ek∣=∣H∣∣G∣,移项即得到 ∣ E k ∣ × ∣ H ∣ = ∣ G ∣ |E_k|\times |H|=|G| ∣Ek∣×∣H∣=∣G∣,而在这里, H H H 就是 Z k Z_k Zk,于是得证。
简单回顾一下,事实上这个证明可以概括为:对
k
k
k 而言,与不动
同类的置换有
Z
k
Z_k
Zk,不同类置换作用在
k
k
k 上会得到
E
k
E_k
Ek 这些状态,而一组同类置换的数量
乘以不同的置换类数
等于
∣
G
∣
|G|
∣G∣,所以
∣
Z
k
∣
×
∣
E
k
∣
=
∣
G
∣
|Z_k|\times |E_k|=|G|
∣Zk∣×∣Ek∣=∣G∣。
burnside定理
这才是 O I OI OI 中群论的重头戏,基本上题目都是用到这个定理来解决。(顺便提一句, P o ˊ l y a P\acute olya Poˊlya 定理的本质就是burnside定理)
还是要先说一个定义:在上面我们知道,对于一个状态 k k k,存在一些置换 Z k Z_k Zk,满足 Z k Z_k Zk 中的置换作用在 k k k 上时依然得到 k k k,设 T ∈ Z k T\in Z_k T∈Zk,那么我们称 k k k 是 T T T 的不动点。显然,一个置换可以有多个不动点,设 c ( f i ) c(f_i) c(fi) 表示置换 f i f_i fi 的不动点数。
为了方便,设群 ( G , ∗ ) (G,*) (G,∗) 作用在状态 [ 1 , n ] [1,n] [1,n] 上,满足 G = { f i ∣ i ∈ [ 1 , n ] } G=\{f_i|i\in[1,n]\} G={fi∣i∈[1,n]},其中 f i f_i fi 是一个置换,以及设 S S S 表示所有状态形成的等价类数量。
burnside定理:
S = 1 ∣ G ∣ ∑ i = 1 ∣ G ∣ c ( f i ) S=\frac 1 {|G|}\sum_{i=1}^{|G|} c(f_i) S=∣G∣1∑i=1∣G∣c(fi)
有了轨道-稳定集定理,这个东西证明起来真的太容易了。
先看后面的 ∑ i = 1 ∣ G ∣ c ( f i ) \sum_{i=1}^{|G|} c(f_i) ∑i=1∣G∣c(fi),即所有置换的不动点数量之和,换一个角度来求这个东西,它等于 所有等价类的 ∣ E ∣ × ∣ Z ∣ |E|\times |Z| ∣E∣×∣Z∣ 之和,因为 E E E 中所有状态都是 Z Z Z 中任意置换的不动点。而每个等价类的 ∣ E ∣ × ∣ Z ∣ |E|\times |Z| ∣E∣×∣Z∣ 都等于 ∣ G ∣ |G| ∣G∣。所以所有等价类的 ∣ E ∣ × ∣ Z ∣ |E|\times |Z| ∣E∣×∣Z∣ 之和就等于 S × ∣ G ∣ S\times |G| S×∣G∣。
带入到上面的柿子,很显然等式成立了。
这个东西要应用到题目里的话,一般题目会要求出本质不同的方案数
,而本质相同的方案之间一般可以通过旋转或翻折等方式得到,我们将这些操作作为置换,构成置换群,将其作用在所有方案上,可以得到若干个等价类,一个等价类里的方案都是可以通过置换相互得到的,这表明他们都是本质相同的方案,所以本质不同的方案数就是等价类数,用burnside定理求出来即可。
P o ˊ l y a P\acute olya Poˊlya 定理
再次声明,这只是burnside定理的一个具体使用方式,要做更广泛的题还是要用burnside定理。
以及,回顾一个有点久远的知识点:每个置换可以表示成若干个循环的乘积。
P o ˊ l y a P\acute olya Poˊlya 定理:
设 G = { f 1 , f 2 , . . . , f ∣ G ∣ } G=\{f_1,f_2,...,f_{|G|}\} G={f1,f2,...,f∣G∣} 是作用在 [ 1 , n ] [1,n] [1,n] 上的置换群,给 [ 1 , n ] [1,n] [1,n] 进行染色,有 c o l col col 种颜色,则总方案数为 c o l n col^n coln,对于置换 f i f_i fi,设 m ( f i ) m(f_i) m(fi) 表示置换 f i f_i fi 可以拆成多少个循环的乘积,那么在 G G G 的作用下, [ 1 , n ] [1,n] [1,n] 的等价类数量为
1 ∣ G ∣ ∑ i = 1 ∣ G ∣ c o l m ( f i ) \frac 1 {|G|}\sum_{i=1}^{|G|} col^{m(f_i)} ∣G∣1i=1∑∣G∣colm(fi)
其实,里面的 c o l m ( f i ) col^{m(f_i)} colm(fi) 就等价于burnside定理中的 c ( f i ) c(f_i) c(fi),即不动点数量,因为 f i f_i fi 可以拆成 m ( f i ) m(f_i) m(fi) 个循环,而每个循环内要保持不动的话必须要求每个状态的颜色都相同,一共有 m m m 中颜色可以选择,而两两循环间的颜色互不相关,所以总不动点数就是 c o l m ( f i ) col^{m(f_i)} colm(fi)。
题表
UVA10601 Cubes 题解
[AHOI2002]黑白瓷砖 题解
SP422 TRANSP2 - Transposing is Even More Fun 题解
[HNOI2009]图的同构记数 题解
P4128 [SHOI2006]有色图 题解