置换群通常用来解决一些涉及「本质不同」的计数问题,例如用种颜色给一个立方体染色,求本质不同的方案数(经过翻转后相同的两种方案视为同一种)
置换:将映射到一个打乱之后的 ~ 的排列。可以用一个函数来表示,(其中是排列)。注意置换是函数,而不是排列
循环置换:将映射到。如果建图,点向连边的话,会发现形成了一个环。若两个循环置换不含有相同的元素,则称它们是不相交的
置换的乘积:映射函数的复合
性质:任意一个置换都可以拆分成若干个不相交的循环置换的乘积
证明:对一个置换建图,从向连边,可以发现每个点的出度和入度都是,所以这个图由若干个环构成,于是显然
置换群:对 ~ 的所有置换(一共有种)构成的集合是一个群,叫做置换群。不难验证置换群的子群也是置换群
群作用:与陪集一样,有左群作用和右群作用,下面以左群作用为例。设现有集合和群,如果存在一个映射,满足以下条件:
1.(其中是中的单位元)
2.
则称作用在上。
通俗来讲,就是对中的每一个元素,都构建一个映射满足,并且单位元为恒等作用且乘积作用等于相继作用(也就是说对于一个属于的元素和两个属于的元素,先用变换再用变换的效果与直接用变换的效果一样)
本质相同:设作用于。若,且存在,使得,那么就称本质相同。
先证明本质相同关系是等价关系。定义本质相同关系:
自反性:若,则
对称性:若且,则,使得,则
传递性:若且,则,使得,则
于是可以用表示在作用下的商集
Burnside引理:
其中,也就是在作用下不变的元素集合
Polya定理:是Burnside引理的一个具体应用,给出了特定情况下的计算公式。设是两个有限集合,为到的所有映射组成的集合,是作用在上的置换群,则
,其中表示在的作用下,将拆分成若干个不相交的环的乘积之后,环的数量
置换群作用在映射集合上:比如,则也许。即保持定义域的顺序不变,变换值域的顺序
Polya定理也比较好理解,每个环的映射选择有种,共有个环,所以有公式
一个具体的例子看OI-wiki
例子的解释看我们的:是面的集合,标记为上下左右前后,是颜色数量的集合,就是置换群,题目要求我们算的就是等价类商集的大小
对于这道题目,有,一共有如下元素:
1.旋转:不妨全部设为顺时针旋转,于是有旋转的步数为,此时我们要找出循环置换的个数,不难想到[SNOI2019] 数论一题的模型,可以知道循环置换的个数为
2.翻转:此时要分情况讨论。如果是奇数,那么一条对称轴长成下面这个样子:

每条对称轴的循环置换的个数为(注意包含自环),一共有条这样的对称轴
如果是偶数,那么一条对称轴长成下面两个样子:
第一个样子:

每条对称轴的循环置换的个数为,一共有条这样的对称轴
第二个样子:

每条对称轴的循环置换的个数为,一共有条这样的对称轴
不难验证上面的为群,于是就做完了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构