浅谈群论与置换群
2021/5/2 Upd:我之前写的是什么鬼……几乎重写了一遍
Burnside 引理与 Pólya 定理 是群论里的定理
由于本人太弱,理解可能有所偏差 只能感性理解
本文只介绍置换群
1. 定义
1.1 置换群
群是用来解决有对称性的计数问题的,特点比较鲜明
-
置换:\([n] \rightarrow [n]\) 的双射,可以用排列 \(p\) 表示将原本第 \(p_i\) 个元素换到第 \(i\) 个位置上(即 \(a_i \leftarrow a_{p_i}\))。
-
置换群:置换和定义在其上的运算 \(\circ\) 的集合,记作 \(G\),其中的元素记作 \(g\)
\(g=g_1 \circ g_2\) 的意思是先进行一次 \(g_1\),再进行一次 \(g_2\),效果与 \(g\) 等价
- 置换作用的对象是长度为 \(n\) 的序列的一种染色方案,记作 \(x\);所有研究的染色方案的集合记作 \(X\)
比如:
作用在 \([2,1,3,2]\) 上就会变成 \([1,2,2,3]\)
对于 \(X\) 没有太强的要求(但必须在群 \(G\) 作用下封闭),但并不是任意一个置换的集合都能被叫做群的。它要满足以下性质:
-
满足封闭性,即 \(\forall a_i,a_j \in A_n , a_i \circ a_j \in A_n\)
比较重要,保证了运算一定不会超出 \(A_n\)
-
满足结合律,即 \(\forall a_i,a_j,a_k \in A_n,(a_i \circ a_j)*a_k=a_i\circ (a_j \circ a_k)\)
显然是满足的
注意:不一定满足交换律(这一点和矩阵乘法很相似)
-
存在单位元 \(e\) ,满足 \(\forall a_i \in A_n , a_i \circ e =e \circ a_i=a_i\)
其实就是不动嘛
-
存在逆元 \(a_i^{-1}\) ,满足 \(\forall a_i \in A_n , a_i \circ a_i^{-1} =e\)
1.2 不动点与等价类
有了基本的定义,让我们来定义更多的东西
- 等价:\(x_1\) 与 \(x_2\) 等价,当且仅当 \(\exist g \in G,g \cdot x_1=x_2\)
当然有 \(g^{-1} \cdot x_2=x_1\),并且等价具有传递性
因此可以想象一下,整个 \(X\) 会被划分成许多等价类
-
等价类 / 轨道:\(G \cdot x=\{g \cdot x|g \in G\}\),下文中记作 \(\overline{x}\)
\(X/G=\{G \cdot x|x \in X\}\) (集合的集合?我是这么理解的)
\(|X/G|\) 就是所有的轨道个数
-
不动点:\(X^g=\{x \in X|g \cdot x =x\}\)
-
稳定子群 / 稳定化子:\(G_x=\{g \in G|g \cdot x =x\}\)
2. 定理
2.1 轨道-稳定子群定理
不会证明
2.2 Burnside 引理
-
普通版:
-
\[|X/G|=\dfrac{1}{|G|}\sum\limits_{g \in G} X^g \]
轨道个数是所有置换不动点数量的平均数
证明一会儿再说
-
元素带权版:
-
\[\sum\limits_{x \in X} \dfrac{w_x}{|\overline{x}|} =\dfrac{1}{|G|}\sum\limits_{g \in G} w(X^g) \]
给每个元素 \(x\) 赋一个权值 \(w(x)\),其中 \(w(X^g)=\sum\limits_{x \in X^g} w(x)\)
左边的意思就是每个轨道拎一个代表算(因为每个轨道里所有元素的权值都是一样的)
证明还是一会儿再说
-
元素置换带权版:
-
\[\sum\limits_{x \in X} w_x w(G_x) =\sum\limits_{g \in G} w_g w(X^g) \]
给每个置换 \(g\) 赋一个权值 \(w(g)\),其中 \(w(G_x)=\sum\limits_{g \in G_x} w(g)\)
证明出乎意料的简单:
\[\begin{aligned} \sum\limits_{x \in X} w_x w(G_x) & =\sum\limits_{x \in X} w_x \sum\limits_{g \in G_x} w_g\\ & =\sum\limits_{g \cdot x=x} w_x w_g\\ & =\sum\limits_{g \in G} w_g \sum\limits_{x \in X^g} w_x\\ & =\sum\limits_{g \in G} w_gw(X^g) \end{aligned} \]那么尝试去证明一下上面的两个:
令 \(w_g=\dfrac{1}{|G|}\) ,则 \(w(G_x)=\dfrac{G_x}{|G|}=\dfrac{1}{|\overline{x}|}\)
非常轻松~
3. 问题
2.1 问题
-
用 \(m\) 种颜色的珠子串成一个长度为 \(n\) 的环,求不同的环的个数。
-
其中通过旋转可以变为相同的两个环视作同一个环。
-
\(T \leq 1000,n,m \leq 10^9\)
2.1 分析
这里的群显然就是转 \(i(0 \leq i < n)\) 次,满足上面的定义
由 Burnside
引理,\(|X/G|=\dfrac{1}{|G|}\sum\limits_{g \in G} X^g\)
只要算出每个置换的不动点数量就好了
2.2 Pólya 定理
咋读啊
刚刚也说过了,这俩定理本质上是一个东西
现在问题是对于每种置换不好求不动点数量
怎么样就好求了呢?
不妨考虑换一种表示方法:
现在表示成:
意思就是,1 换到 4 , 4 换到 3 , 3 换到 2 , 2 换到 5 , 5 换到 1
其实就是个循环
那对于任意的一个置换,其实都可以表示成若干个循环的乘积(大家都叫它乘积……)
比如:
现在可以表示成:
如果你做过 [无聊的军官] 这道题的话,应该很好理解
回到这道题,我们现在是对于一个置换,求不变的环的数量
首先回到第一种置换,就是以珠子为零件的置换
换成这种表示方法
显然同一个循环里的珠子必须是同色的!
假设有 \(c(a_i)\) 个循环,那贡献就是 \(m^{c(a_i)}\)
2.3 数论
\(O(Tn^2)\) 啦,还是不能通过
来考虑一下,如果一次转 \(k\) 下,那转 \(\dfrac{lcm(n,k)}{k}\) 下就能回到原位,这也就是循环节的长度
所以共有 \(\dfrac{nk}{lcm(n,k)}=gcd(n,k)\) 个循环节!
现在优化成 \(O(Tnlogn)\) 了,仍然不能通过……
\(ans=\dfrac{1}{n}\sum\limits_{i=1}^n m^{gcd(n,i)}\)
\(\ \ \ \ \ \ \ \ = \dfrac{1}{n}\sum\limits_{d|n} m^d\sum\limits_{i=1}^n [gcd(n,i)=d]\)
\(\ \ \ \ \ \ \ \ = \dfrac{1}{n}\sum\limits_{d|n} m^d \varphi(\dfrac{n}{d})\)
枚举因数和欧拉函数暴力计算都是 \(O(\sqrt{n})\) 的
所以总共 \(O(Tn^{\frac{3}{4}})\)
4. 练习
推荐一个题单 【群论】置换群&Polya定理
我转存并补充的版本 转存的 【群论】置换群&Polya定理
Burnside
引理模板,暴力枚举置换,再带上点组合数来转移
Necklace
可能会爆 long long
……还是那个传统艺能,模上 \(9223372036854775783(2^{63}-25)\)
Pólya
定理模板,需要补充置换与找规律
很有意思的题
发现其实就是求矩阵转置的置换的循环个数
而矩阵转置的置换其实是把二进制循环左移 \(a\) 位(或右移 \(b\) 位)
把每个数看成一个长度为 \(a+b\) 的环,珠子只有 \(0\) 和 \(1\) 两种颜色
就转化成 Pólya
定理板子了
优化……我不会(悲
很经典的题
考虑每个点的置换,边的不动点个数
分为两类:
-
- 循环内的边
长度相同的边必须为同色边
共 \(m^{\lfloor\frac{b_i}{2}\rfloor}\) 的贡献
-
- 两个循环间的边
置换 \(lcm(b_i,b_j)\) 次后会回到初始状态
所以循环节一共 \(\dfrac{b_ib_j}{lcm(b_i,b_j)}=gcd(b_i,b_j)\) 个
不能枚举所有置换,转化成枚举 \(b\)
再添上几个组合数……
讲得太含糊了直接去看题解吧
Burnside
引理+生成函数
(烷基计数是这两题的基础)
化学+信息梦幻联动
Burnside
引理+生成函数+多项式技术
详细的解释放在生成函数里:Re:从零开始的生成函数魔法
(这……真的没办法解释了)
要用到带权的 Burnside
,感兴趣的可以去看看
灵活应用了多种知识,是道好好好好题!
(完)