1.什么是群(群的四要素)
1.1群的组成
集合 (G ot=varnothing) 和 (G) 上的运算 (cdot) 构成的代数结构 ((G, cdot))
人话:集合+运算=群,记作((集合,运算))。
1.2群的定义
1.2.1封闭性
(forall a,bin G,acdot bin G)
人话:任意两个集合内的元素进行运算后,不会得到集合以外的元素。
1.2.2结合律
(forall a, b,cin G,(acdot b)cdot c=acdot(bcdot c))
人话:类似于加法/乘法的结合律,只要相对位置不改变,运算的顺序对运算结果无影响。
1.2.3单位元
(exists ein G,forall ain G,ecdot a=acdot e=a)
人话:类似于加法/乘法中的0/1,与集合内任何元素运算后结果都是那个元素。
1.2.4逆元
(forall ain G,exists bin G,acdot b=bcdot a =e),称 (b) 为 (a) 的逆元,记作 (a^{-1})
人话:相当于加法/乘法的相反数/倒数。
1.3群的性质
1.3.1定理:单位元唯一
证明:
假设有两个不同的单位元 (e_1,e_2),根据性质1.2.3,有 (e_1=e_1e_2=e_2),与假设矛盾,故假设不成立。
(Box)
1.3.2定理:每个元素的逆元唯一
证明:
假设 (ain G) 有两个不同的逆元 (b,cin G),根据性质1.2.4,有 (acdot b=acdot c)
所以 (a^{-1}(acdot b)=a^{-1}(acdot c))
根据性质1.2.2,有 ((a^{-1}cdot a)cdot b=(a^{-1}cdot a)cdot bRightarrow ecdot b=b=ecdot c=c)
假设不成立。左部同理。
(Box)
1.3.3定理:元素的阶
对于任意的有限群 ((G,cdot)), (forall ain G,exists k,a^k=e),此时,称 (k) 为 (a) 的阶,且有 (a^{-1}=a^{k-1})
证明:
根据性质1.1.1,(forall ain G,{a,a^2,a^3,...,a^{|G|},a^{|G|+1}}subseteq G),
因为 (G) 内没有相同的两个元素,因此 ({a,a^2,a^3,...,a^{|G|+1}}) 至少有两个相同的元素,假设 (a^x=a^y,x<y)
则 (a^{y-x}cdot a^x=a^{y-x}cdot a^y),即 (a^y=a^{y-x}cdot a^y=ecdot a^y),所以 (a^{y-x}=e,k=y-x)
(Box)
1.4子群
1.4.1子群定义
若 ((G,cdot)),(Hsubseteq G且H ot=varnothing),且 ((H,cdot)) 也是群,则 ((H,cdot)) 是 ((G,cdot)) 的子群, 记为 (Hleq G)
1.4.2陪集及其性质
若 (Hleq G),且 (gin G),则
- (gH={gcdot t|hin H}), 称 (gH) 为 (H) 在 (G) 内的左陪集
- (Hg={hcdot s|hin H}), 称 (Hg) 为 (H) 在 (G) 内的右陪集
常见表述:
- 若 (Hleq G), 则 (G/H) 表示 (G) 中 (H) 的全体左陪集, 即 ({gH|gin G})
- 若 (Hleq G), 则 ([G:H]) 表示 (G) 中 (H) 的不同陪集的数量
1.4.2.1性质1:(forall gin G,|H|=|Hg|)
证明:
假设存在 (gin G) , 满足 (|H| ot =|Hg|)
所以, 根据陪集的定义, (exists h_1,h_2in H,h_1cdot g=h_2cdot g且h_1 ot =h_2)
与集合的性质矛盾, 故假设不成立
(Box)
1.4.2.2性质2:(forall gin G,gin Hg)
证明:
根据定义1.2.3, (ein H)
因为 (ecdot g=g), 所以 (g in Hg)
(Box)
1.4.2.3性质3:(Hg=Hiff gin H)
充分性证明:
假设存在 (g) , 使得 (Hg=H且g otin H), 则 (g otin Hg)
与性质1.4.2.2矛盾
(Box)
必要性证明:
假设存在 (g), 使得 (gin H且Hg ot=H), 则 (exists hin H,hcdot g otin H)
与性质1.2.1矛盾
(Box)
1.4.2.4性质4:(Ha=Hbiff acdot b^{-1}in H)
充分性证明:
易知 (ain Hb), 因此 (exists hin H,hcdot b=a)
即, (h=acdot b^{-1})
(Box)
必要性证明:
根据性质1.4.2.4, (Hab^{-1}=H)
因为 (Hab^{-1}b={hcdot acdot b^{-1}cdot b|hin H}={hcdot a|hin H}=Ha)
又因为 (Hab^{-1}b=Hb), 所以(Ha = Hb)
(Box)
1.4.2.5性质5:(Hacap Hb ot=varnothingiff Ha=Hb)
充分性证明:
假设 (xin Hacap Hb), 则 (exists h_1,h_2in H,h_1cdot a=h_2cdot b=x), 因此 (ab^{-1}=h_1^{-1}h_2)
根据性质1.2.1和性质1.2.4, (h_1^{-1}h_2in H), 所以(ab^{-1}in H)
根据性质1.4.2.4, (Ha=Hb)
(Box)
必要性证明:略
1.4.2.6性质6:(H)的全体右陪集的并等于G
证明:
根据性质1.4.2.2, (forall gin G, gin Hg)
(Box)
1.4.3Lagrange定理
证明:
根据性质1.4.2.5和性质1.4.2.6, 得到 (|H|[G:H]=|G|)
(Box)
2.置换群
2.1置换操作
2.1.1置换操作的表示
有限集合到自身的双射(即一一对应)称为置换。集合 (G={a_1,a_2, ...,a_n}) 上的置换可以表示为
[f=egin{pmatrix}a_1 &a_2&...&a_n \ p_1&p_2&...&p_n end{pmatrix} ]
人话:将某个有序的有限集合重新排列,“重新排列”这个操作就叫集合的置换。例如,将 1 替换为 (a_1) ,(n) 替换为 (a_n)。
2.1.2循环表示
假设有一个置换 (f=egin{pmatrix}a_1&a_2&a_3&a_4&a_5\a_3&a_1&a_2&a_5&a_4end{pmatrix}),如果我们将每个元素看成一个节点,将 (i) 向 (a_i) 连边,那么每个节点恰好有一条出边和一条入边,得到的图就是若干个不相交的简单环。因此,我们可以用更简单的循环表示法表示这样的置换。
循环置换可以表示为
以开始提到的置换为例,该置换可以表示为 ((1,3,2)cdot (4,5)),置换的乘法后文会提到。
2.1.3置换乘法
对于两个置换 (f=egin{pmatrix}a_1&a_2&...&a_n\a_{p_1}&a_{p_2}&...&a_{p_n}end{pmatrix}) 和 (g=egin{pmatrix}a_{p_1}&a_{p_2}&...&a_{p_n}\a_{q_1}&a_{q_2}&...&a_{q_n}end{pmatrix}) ,(f) 和 (g) 的乘积记为 (fcdot g) ,其值为 (fcdot g =egin{pmatrix}a_1&a_2&...&a_n\a_{q_1}&a_{q_2}&...&a_{q_n}end{pmatrix})
人话:将原序列先经过操作 (f) ,再经过操作 (g) 后的等价置换(一步到位)。注意,置换乘法不一定满足交换律。
2.2置换群
2.2.1置换群的验证
上文已经定义了置换以及置换乘法, 本节验证是否满足群的定义。
封闭性: 显然满足。
结合律: 显然满足。
单位元: 存在, (e=(1, 2, ...,n))
逆元: 显然存在。
因此, 本文的主角: 置换群登场。
2.2.2群作用
置换群是一个由置换操作组成的群,而非传统意义上的元素。
因此,置换群必然是依托某个作用对象而存在的。而作用对象, 就是集合。
对于一个集合 (M) 和群 ((G,cdot )), 若给定了一个二元函数 (phi(v,k)),其中 (vin G) ,(kin M),且有:
[phi(e,k)=k\phi(g,phi(s,k))=phi(gcdot s,k) ]则称群 ((G,cdot )) 作用于 集合 (M)
2.3相关定理
设 ((G,cdot )) 是一个置换群, 作用于集合 (X)
方便起见,下文中 (phi (g,x)) 记为 (g(x))
2.3.1轨道-稳定子定理
2.3.1.1概念
- 不动点 :对于 (gin G),若 (exists xin X,g(x)=x),则称 (x) 是 (g) 下的不动点,(xin X^g)
- (x) 不动置换类(稳定子):对于 (gin G),若 (x) 是 (g) 下的不动点,则 (g) 属于 (x) 不动置换类,记为 (gin G^x)。
- 等价类(轨道):(G(x)={g(x)|gin G}), 即 (x) 能够通过 (G) 内的置换操作所能够到达的所有元素。
2.3.1.2定理:(|G^x||G(x)|=|G|)
证明:
首先证明 ((G^x,cdot)) 是 ((G,cdot)) 的一个子群。
封闭性:(forall g_1,g_2in G^x,(g_1cdot g_2)(x)=x),因此 ((g_1cdot g_2)(x)in G^x),封闭性得证。
结合律:显然。
单位元:因为 (e(x)=x),所以 (ein G^x),(G^x) 存在单位元。
逆元:(forall gin G^x,(gcdot g^{-1})(x)=e(x)=x),又因为 (g(x)=x),所以 (g^{-1}(x)=x),所以 (g^{-1}in G^x),逆元存在。
根据Lagrange定理,有 (|G^x||G:G^x|=|G|)
只需证明:(|G:G^x|=|G(x)|)
此时需要构建一个关于 (g(x)) 与 (G^x) 的陪集的双射关系。
显然,对于 (g(x)) 可以令其对应陪集 (gG^x)
若 (g_1,g_2in G^x,g_1(x)=g_2(x)),则 ((g_1cdot g_2^{-1})(x)=e(x)=x),所以(g_1cdot g_2^{-1}in G^x)
根据性质1.4.2.4,(g_1cdot g_2^{-1} G^xiff g_1G^x=g_2G^x),因此相同的 (g(x)) 在相同的陪集中,相同的陪集中都是相同的 (g(x))
因此 (|G:G^x|=|G(x)|) 得证。
(Box)
2.3.2Burnside引理
记 (X/G={G(x)|xin X}),则
[|X/G|=frac{1}{|G|}sum_{gin G}X^g ]
人话:(X) 在群 ((G,cdot)) 作用下的等价类总数等于每一个 (g) 作用下的不动点总数的平均数。
证明:
每个元素仅属于一个轨道,因此,有:(|X/G|=sumlimits_{xin X}frac{1}{|G(x)|})
根据轨道-稳定子定理,有:(|X/G|=sumlimits_{xin X}frac{|G^x|}{|G|})
因此,(|X/G|=frac{1}{|G|}sumlimits_{xin X}|G^x|=frac{1}{|G|}sumlimits_{gin G}|X^g|)
(Box)
2.3.3Pólya定理
设有 (n) 个元素,每个元素有 (m) 种染色方法,((G,cdot)) 是 (n) 个元素的置换群,则染色总方案数为
[frac{1}{|G|}sum_{gin G}T(g) ]其中,(T(g)) 表示在置换 (g) 下,不变的染色方案数
2.4实战演练
2.4.1【模板】Pólya 定理)
如果不考虑旋转相同,那么本题的答案十分显然,即 (m^n)
考虑将旋转表示为一个置换群 ((G,cdot)) ,定义旋转为将所有顶点按照相同方向移动若干个位置,旋转1这个操作就可以表示为 (r=(a_1,a_2,cdots,a_n))
根据置换乘法的定义,旋转 (m) 操 作可以表示为 (r^m=(a_1,a_2,cdots ,a_n)^m)
容易得到,(G={r^0,r,...,r^{n-1}})((r^0) 即为单位元)
根据引理,不同染色的方案数为:
问题变为了如何求 (T(r))
首先对于环上的每个节点标号,分别为 (0,1,...,n-1)
容易发现,对于某个操作 (r^k),如果要使旋转后染色相同,那么必须满足 ({ m col}(i)={ m col}((i+k)\%n))
不难想象,当循环节长度为 (gcd (k,n)) 时,总是满足旋转后的方案不变,因此,(T(r^k)=m^{gcd(k,n)}),特别的,(T(r^0)=m^n)
所以:
接下来就是莫比乌斯反演部分:
2.4.2【HNOI2009】图的同构计数)
如果不考虑同构,显然有 (2^{frac{n(n-1)}{2}}) 种不同的图
分析一下同构定义:将图各个点重新标号后得到的图相同。因此,可以将同构看作是点置换的等价类。
定义群 ((G,cdot)) ,其中 (G) 是全体置换操作组成的集合,(|G|=n!)
由置换乘法可知,可以将一个置换拆分成若干个“环”,两个“环”之间不会发生点的置换。
因此,对于每一个置换操作,可以这样计算其不动点(在本题中是“不动图”)个数,将边分两种情况讨论(每种情况都需要保证图中的边在这个置换下不动):
-
边的两个端点在同一个“环”上(假设参与这个置换循环的点数为 (n)):
想象一个圆周上有 (n) 个点,全部向同一个方向旋转一个位置,得到的图不变即为“不动图”。不难发现,只要所有点连出的所有边的长度一一对应,得到的即为“不动图”。一个点最多连出 (leftlfloorfrac{n}{2} ight floor) 条不同的边,故共有 (2^{leftlfloorfrac{n}{2} ight floor}) 种“不动图”。
-
边的两个端点不在同一个“环”上(假设两个环的点数分别为 (a),(b)):
考虑一条边做 ({ m lcm}(a,b)) 次操作就能回到原本的位置,因此等价类的大小应当是 ({ m lcm}(a,b))。每条边都在同样大小的等价类中,因此不同等价类的个数为 (frac{ab}{{ m lcm}(a,b)}=gcd (a,b)),故共有 (2^{gcd (a,b)}) 种“不动图”。
综上,对于一种置换,假设其拆分后的环长度分别为 (b_1leq b_2leq cdots leq b_m),那么不动点的个数应当是:
根据Burnside引理,有:
但 (n!) 枚举置换显然不现实。根据式子不难发先,如果两个不同的置换有相同的 (b) 序列,那么这两个置换的不动点个数也是相同的。
考虑每种 (b) 序列对应多少种不同的置换:
- 首先将长度为 (n) 分为 (m) 段,每段代表一个循环,因此环内第一个数字无论放在哪个位置都是相同的,所以方案数为 (frac{n!}{prodlimits_{i=1}^m b_i})
- 其次考虑不同环之间的关系,发现两个大小相同的环的相对位置对与方案数没有影响,因此方案数为 (frac{n!}{prodlimits_{i=1}^m b_iprodlimits_{l} c_l!}),(c_l) 表示长度等于 (l) 的环的个数。
可以通过 dfs 进行整数拆分得出 (b) 序列。总答案为: