Note -「群论」学习笔记
前置知识
关系、映射等基本的东西就略啦。
群
对于集合 \(S\not=\varnothing\) 与作用于 \(S\) 的元素的二元运算 \(\cdot\) 构成的代数结构 \((S,\cdot)\),若满足
- 封闭性:\(\forall a,b\in S,~a\cdot b\in S\);
- 结合律:\(\forall a,b,c\in S,~(a\cdot b)\cdot c=a\cdot(b\cdot c)\);
- 存在单位元:\(\exist e\in S,~\forall a\in S, a\cdot e=e\cdot a=a\);
- 存在逆元:\(\forall a\in S,~\exist b\in S,~a\cdot b = b\cdot a=e\),此时 \(a,b\) 互为逆元,称 \(b=a^{-1},a=b^{-1}\)。
则 \((S,\cdot)\) 为一个群。
此外,若 \(T\subseteq S,T\not=\varnothing\),且 \((T,\cdot)\) 是群,则称 \((T,\cdot)\) 为 \((S,\cdot)\) 的子群。
置换
对于有限集 \(A=\{a_1,a_2,\cdots,a_n\}\),定义双射的函数 \(f:A\rightarrow A\) 是 \(A\) 的置换,一般性地记作
a_1&a_2&\cdots&a_n\\
a_{p_1}&a_{p_2}&\cdots&a_{p_n}
\end{pmatrix},
\]
此时则有 \(f(a_i)=a_{p_i}\)。显然 \(p_{1..n}\) 构成了一个 \(1\sim n\) 的排列。
定义作用于置换的复合运算 \(\cdot\)(也可以被叫做乘法?),对于置换 \(f=\begin{pmatrix}
a_1&a_2&\cdots&a_n\\
a_{p_1}&a_{p_2}&\cdots&a_{p_n}
\end{pmatrix}\) 与置换 \(g=\begin{pmatrix}
a_{p_1}&a_{p_2}&\cdots&a_{p_n}\\
a_{q_1}&a_{q_2}&\cdots&a_{q_n}
\end{pmatrix}\),有
a_1&a_2&\cdots&a_n\\
a_{q_1}&a_{q_2}&\cdots&a_{q_n}
\end{pmatrix}.
\]
即
\]
接下来,为了引入置换群的概念,我们来研究复合运算的单位元、逆元与结合律。
首先,置换的复合运算具有单位元,即恒等变换 \(\iota\)(iota, /aɪˈəʊtə/),例如 \(A\) 上的恒等变换为
a_1&a_2&\cdots&a_n\\
a_1&a_2&\cdots&a_n
\end{pmatrix}.
\]
可见
\]
另一个特殊元自然是逆元。对于置换 \(f=\begin{pmatrix}
a_1&a_2&\cdots&a_n\\
a_{p_1}&a_{p_2}&\cdots&a_{p_n}
\end{pmatrix}\),构造其逆元 \(f^{-1}=\begin{pmatrix}a_{p_1}&a_{p_2}&\cdots&a_{p_n}\\a_1&a_2&\cdots&a_n
\end{pmatrix}\),那么有 \(f\cdot f^{-1}=f^{-1}\cdot f=\iota\)。
复合运算具有结合律,即
\]
最后,我们用 Pólya 定理中会涉及的循环置换的概念结束本节。
循环置换,也即轮换,是一类特殊的置换,形象体现为
a_1&a_2&\cdots&a_{n-1}&a_n\\
a_2&a_3&\cdots&a_n&a_1
\end{pmatrix}
\]
若两个轮换 \(f_1:A_1\rightarrow A_1\) 和 \(f_2:A_2\rightarrow A_2\) 满足 \(A_1\cap A_2=\varnothing\),则 \(f_1,f_2\) 不相交,考虑一个“乘积”运算,作用于 \(f_1\) 和 \(f_2\),得到 \(f_1\circ f_2:(A_1\cup A_2)\rightarrow(A_1\cup A_2)\) 是一个置换。若把 \(f_1,f_2\) 理解为关系集,亦能简洁地写作:
\]
(注:这里将置换、函数、映射、关系集等概念视为一体,或有失严谨性,但的确有助于从本质上理解乘法操作。)
显然,任何一个置换都可以唯一分解为若干轮换的乘积。对于置换 \(f\),我们定义其拆分得到的轮换数量为 \(c(f)\)。
Burnside 引理与 Pólya 定理
概念引入
为让定理本身显得简洁明了,我们预先做一些陈述。
对于有限集 \(A,B\) 和作用于 \(A\) 的所有置换构成的群(即置换群)\(G\),设所有 \(f:A\rightarrow B\) 构成映射集合 \(X\),即 \(X=B^A\)。基于 \(g\in G\) 对 \(A\) 的作用,我们定义 \(g\) 对一个映射 \(f:A\rightarrow B\) 的作用。设 \(f=\{\lang a,b\rang\mid a\in A,b\in B\}\),那么
\]
在此基础上,定义等价类:若 \(f_1,f_2\in X\),则 \(f_1,f_2\) 属于同一等价类,当且仅当 \(\exist g\in G,~f_1=g(f_2)\)。同时,令 \(G\) 作用在 \(X\) 上产生的等价类集合为 \(G/X\)。
引例
稍作停顿,形象理解这些概念是重要而关键的一步。考虑对 \(2\times 2\) 的方格染色,每个格子可以染蓝色或白色,如在下图中:

一起把上面的对象一一具体化:
- \(A\),一个 \(2\times 2\) 方格中的四个格子,它们是四个独立的元素。不妨从上到下,从左到右记作 \(a_1,a_2,a_3,a_4\),则 \(A=\{a_1,a_2,a_3,a_4\}\);
- \(B\),颜色集合 \(\{\text{W(white)},\text{B(blue)}\}\);
- \(f:A\rightarrow B\),一种染色方案,例如 \(f=\{\lang a_1,\text W\rang,\lang a_2,\text B\rang,\lang a_3,\text W\rang,\lang a_4,\text B\rang\}\) 就描述了 \(13\) 号图的染色方案;
- \(X\),所有染色构成的集合;
- \(g(f)\),将已染好色的四个格子换换位置,得到的新的染色方案。例如 \(g=\begin{pmatrix}a_1&a_2&a_3&a_4\\a_2&a_4&a_1&a_3\end{pmatrix}\)(即顺时针旋转 \(90^\circ\))作用在 \(13\) 号图的染色方案上,得到 \(g(f)=\{\lang a_2,\text W\rang,\lang a_4,\text B\rang,\lang a_1,\text W\rang,\lang a_3,\text B\rang\}\),对应到图上,\(16\) 号!正是 \(13\) 号图顺时针旋转 \(90^\circ\) 的结果。
- 等价类,例如当 \(G\) 仅包括“保持不变”和“左右对称”两种置换,则等价类有 \(\{1\},\{2\},\{3,4\},\{5,6\},\{7,8\},\{9,10\},\{11,12\},\{13,15\},\{14\},\{16\}\)(数字为图的编号)。
轨道-稳定子(Orbit-Stabilizer)定理
为透彻地理解、证明并推广后续引理和定理,我们需要引入轨道和稳定子的概念,并证明轨道-稳定子定理。
\(G\) 和 \(X\) 的定义同上,并定义
\(\forall x\in X\),\(x\) 的稳定子为
\[G^x=\{g\in G\mid g(x)=x\}.
\]\(\forall x\in X\),\(x\) 的轨道为
\[G(x)=\{g(x)\mid g\in G\}.
\]
轨道-稳定子定理:
\]
证明
如果你对本节并不感兴趣,可跳过本节。搞 OI 的证结论干吗。
因为实在懒得写了,你得知道(至少说了解):
尝试向 Lagrange 定理靠拢。因为对于 \(G\) 的子群 \(H\),会有
\]
其中 \([G:H]\) 为 \(H\) 在 \(G\) 中的不同左陪集数量,即
\]
所以我们先证明 \(G^x\) 是 \(G\) 的子群。依次核对群的性质:
- 封闭性:\(\forall f,g\in G^x,x\in X,~(f\cdot g)(x)=f(g(x))=f(x)=x\),故 \((f\cdot g)\in G^x\);
- 结合律:置换的复合自然有结合律咯;
- 单位元:\(\iota(x)=x\),自然有 \(\iota\in G^x\);
- 逆元:\(\forall g\in G^x,~g^{-1}(x)=g^{-1}(g(x))=(g^{-1}\cdot g)(x)=\iota(x)=x\),故 \(g^{-1}\in G^x\)。
走到此,已有
\]
现只需证 \(|G(x)|=[G:G^x]\)。
尝试构造出一个 \(G(x)\) 与 \((G:G^x)\) 之间的双射 \(\varphi\)。这里直接给出答案,令关系 \(\varphi\) 满足
\]
下证 \(\varphi\) 的确是一个双射:
- 取 \(f(x)=g(x)\in G^x\),左右 \(\cdot f^{-1}\),得到 \(\iota(x)=x=(f^{-1}\cdot g)(x)\),随之则是 \((f^{-1}\cdot g)G^x=G^x\),左右 \(\cdot f\),得 \(gG^x=fG^x\);
- 取 \(fG^x=gG^x\in(G:G^x)\),同理可得 \(g(x)=f(x)\)。
- “既单又满”已体现,故 \(\varphi\) 是双射,\(|G(x)|=[G:G^x]\)。
综上,轨道-稳定子定理成立。\(\square\)
Burnside 引理
Burnside 引理:在上述定义中,有
\]
其中
\]
为 \(X\) 中的映射在 \(g\) 的作用下不改变的集合,称为 \(g\) 关于 \(X\) 的不动点集合。Burnside 引理则可用自然语言描述为:\(G\) 作用与 \(X\) 的等价类数量 等于 \(G\) 中的置换关于 \(X\) 的不动点集合大小的平均值。
证明
我们方才只证了引理的引理 qwq。现在回到 Burnside 引理的证明。
\sum_{g\in G}|X^g|&=|\{(g\in G,x\in X)\mid g(x)=x\}|\\
&=\sum_{x\in X}|G^x|\\
&=\sum_{x\in X}\frac{|G|}{|G(x)|}~~~~\text{(Orbit-Stabilizer)}\\
&=|G|\sum_{Y\in X/G}\sum_{x\in Y}|G^x|^{-1}\\
&=|G|\sum_{Y\in X/G}\sum_{x\in Y}|Y|^{-1}\\
&=|G||X/G|
\end{aligned}
\]
移项即证。\(\square\)
Pólya 定理
Pólya 定理:记号意义同 Burnside 引理部分,有
\]
其中 \(c(g)\) 表示 \(g\) 拆分为不交的循环置换所得到的转置的数量。
证明
本节证明并不依赖于上一节证明,且你完全可以驾驭本节。不然讲 Burnside 引理就没用了。
对于 Burnside 引理,我们只需说明 \(|B|^{c(g)}=|X^g|\)。不妨记 \(g=g_1\circ g_2\circ\cdots\circ g_k\),其中 \(g_i~(i=1,2,\dots ,k)\) 为不交的循环转置。进一步,我们需要证明
\]
说人话:\(f\) 是 \(g\) 的不动点 等价于 对于 \(g\) 所拆分为的每个循环置换,其中的元素由 \(f\) 映射为同一值。
那么正确性显而易见了:一个环,顺序转一格和原来一样,当且仅当环上每个元素都一样。\(\square\)
应用例
稍作休整,我们上一道经典的手玩题。
对于 \(2\times2\) 的方格图,用两种颜色为每个格子染色,求旋转同构意义下本质不同的方案数。还是上文的图:
\(G\) 的元素,即“旋转”,那么有四种:
- 恒等变换(不旋转);
- 顺时针旋转 \(90^\circ\);
- 顺时针旋转 \(180^\circ\);
- 顺时针旋转 \(270^\circ\)。
逻辑上需要小心,我们必须穷举所有的置换,而不能有“转 \(90^\circ\) 再转 \(180^\circ\) 就是转 \(270^\circ\) 之类的想法”。之后套用 Pólya 定理:
- 恒等变换:有 \(4\) 个循环;
- 顺时针旋转:有 \(1\) 个循环;
- 顺时针旋转:有 \(2\) 个循环;
- 顺时针旋转:有 \(1\) 个循环。
方案数:\(\frac{2^4+2^1+2^2+2^1}{4}=6\),好耶!
完整的 Pólya 定理及扩展
概念引入
有时,我们想求的并非“所有染色方案”,而是“某种颜色染多少个时的方案”。在计数过程中将状态分类,这是 GF,即生成函数擅长的操作。在理解简单的 Pólya 定理后,我们向其中引入生成函数来将其扩展。
这里,我们先来定义循环指标。对于 \(n\) 元置换 \(g\) 的轮换分解,若有 \(b_i\) 个大小为 \(i\) 的轮换,则 \(g\) 的循环指标为
\]
是一个 \(n\) 元生成函数。紧接着,定义置换群 \(G\) 的循环指标为
\]
即它所包含的所有置换的循环指标的平均值。
Pólya × GF——完整的 Pólya 定理
在染色方案集 \(X=B^A\) 的基础上,我们为每个颜色 \(b\in B\) 规定一个权值 \(\omega(b)\in [0,+\infty)\cap\mathbb N\),并把权值均为 \(k\) 的颜色归为 \(k\) 类颜色。令 \(f(x)\) 是关于颜色类型,以类型数量为系数的生成函数,即
\]
其中 \(f_k\) 即权值为 \(k\) 的颜色数量。
Pólya 定理:设 \(F(x)\) 表示所有染色方案,关于颜色权和,以对应方案数为系数的生成函数,那么
\]
可以发现,令 \(f(x)=|B|\),即所有颜色的全为 \(0\),我们就得到了上文中简单形式的 Pólya 定理。自然,由简单的 Pólya 定理到这里生成函数形式的 Pólya 定理的推导过程也是平凡的,形象地考虑每个轮换的贡献即可,这里略过。
Emmm...先到这里叭,以后再更(咕)。
Note -「群论」学习笔记的更多相关文章
- Note -「线性规划」学习笔记
\(\mathcal{Definition}\) 线性规划(Linear Programming, LP)形式上是对如下问题的描述: \[\operatorname{maximize}~~~~z= ...
- 「ExLucas」学习笔记
「ExLucas」学习笔记 前置芝士 中国剩余定理 \(CRT\) \(Lucas\) 定理 \(ExGCD\) 亿点点数学知识 给龙蝶打波广告 Lucas 定理 \(C^m_n = C^{m\% m ...
- 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势
0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有 ...
- Note -「Lagrange 插值」学习笔记
目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...
- Note -「动态 DP」学习笔记
目录 「CF 750E」New Year and Old Subsequence 「洛谷 P4719」「模板」"动态 DP" & 动态树分治 「洛谷 P6021」洪水 「S ...
- Note -「圆方树」学习笔记
目录 圆方树的定义 圆方树的构造 实现 细节 圆方树的运用 「BZOJ 3331」压力 「洛谷 P4320」道路相遇 「APIO 2018」「洛谷 P4630」铁人两项 「CF 487E」Touris ...
- Note -「Dsu On Tree」学习笔记
前置芝士 树连剖分及其思想,以及优化时间复杂度的原理. 讲个笑话这个东西其实和 Dsu(并查集)没什么关系. 算法本身 Dsu On Tree,一下简称 DOT,常用于解决子树间的信息合并问题. 其实 ...
- Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门
进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...
- Note -「单位根反演」学习笔记
\(\mathcal{Preface}\) 单位根反演,顾名思义就是用单位根变换一类式子的形式.有关单位根的基本概念可见我的这篇博客. \(\mathcal{Formula}\) 单位根反演的 ...
随机推荐
- python中addict模块,设置和读取嵌套字典
源码地址: https://github.com/mewwts/addict/blob/master/README.md
- Mybatis实现分包定义数据库
Mybatis实现分包定义数据库 背景 业务需求中需要连接两个数据库处理数据,需要用动态数据源.通过了解mybatis的框架,计划 使用分包的方式进行数据源的区分. 原理 前提: 我们使用mybati ...
- 嫌Excel VBA执行速度慢,这些建议你一定要看
Excel是办公利器,这无需多言.尤其在办公室,Excel用的熟练与否,会的Excel知识点多不多,很大程度上决定了你工作是否高效,能否按时打卡下班.可我们也时常听到这样的吐槽:Excel好是好,可就 ...
- pycharm创建脚本头文件模板
代码头文件信息可以包括:python 解析器的位置.字符集.作者信息.创建脚本时间等,pycharm工具创建头部信息模板操作步骤如下: 设置头文件:文件-->设置-->编辑器-->文 ...
- 解决nRF Connect for PC无法连接网络的问题(非FQ)
各位小伙伴是不是也遇到过国内不能正常使用nRF Connect的问题,现在教大家一个十分有效的办法. 1.找到nrf connect的脚本配置文件"apps.json",默认在&q ...
- 【解决了一个小问题】alert manager中的cluster.advertise-address参数是什么意思?
如果在启动 alert manager的时候,不填写参数: /usr/bin/alertmanager --config.file=/etc/alert_manager/alertmanager.ya ...
- 【测试数据】android下CPU核与线程数的关系
测试方法 24MB的一张4K图片,连续计算5次直方图. 小米mix2s, 高通骁龙 845.4大核,4小核. 数据表格 线程数 绝对时间(s) 累计CPU时间(s) 每线程平均耗时(us) 每线程最大 ...
- C#语言类型
讨论 所有类型在,值类型,引用类型用new创建,值类型由编译器自动补全 int等引用类型是轻量化结构更像是结构体 值类型在栈中,引用类型在堆中 所有类型由类派生,可以说每个是对象,也可以不是 由于.N ...
- Cesium源码剖析---Post Processing之物体描边(Silhouette)
Cesium在1.46版本中新增了对整个场景的后期处理(Post Processing)功能,包括模型描边.黑白图.明亮度调整.夜视效果.环境光遮蔽等.对于这么炫酷的功能,我们绝不犹豫,先去翻一翻它的 ...
- 146_LRU cache | LRU缓存设计
题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...