置换群、Burnside引理与等价类计数问题
置换群、Burnside引理与等价类计数问题
标签: 置换群 Burnside引理
置换
说说我对置换的理解,其实就是把一个排列变成另外一个排列。简单来说就是一一映射。而置换群就是置换的集合。
比如\[ \left(\begin{array}1
1 & 2 & 3 & 4 & 5 \\
5 & 3 & 4 & 2 & 1
\end{array}\right) \]是一个置换。也可以把置换看做定义域和值域都为{1,2,......,n}的函数,我们通常把置换写成形如{\(a_1,a_2,a_3,......,a_n\)}的形式,代表置换\[ \left(\begin{array}1 1 & 2 & 3 & ...... & n \\ a_1 & a_2 & a_3 & ...... & a_n\end{array}\right)\]
置换之间可以进行乘法。如置换f={3,1,4,2},g={2,3,4,1},那么fg={4,2,1,3}。而且置换乘法满足结合律,不过置换乘法并不满足交换律。如上面的例子,gf={1,4,2,3}。
为了方便我们处理置换,我们还经常把置换表示成循环的乘积。循环是什么呢?\(\left(\begin{array}1 1 & 2 & 3\end{array}\right)\)相当于置换\(\left(\begin{array}1 1 & 2 & 3\\2 & 3 & 1\end{array}\right)\)。一个循环就像一个环,其中每一个元素向下一个元素连边。由于每个点的出度与入度都为1,任意置换都能被分解为若干个循环。我们称一个置换中循环的个数为循环节,对于不相交的循环相乘是满足交换律的。
等价类计数问题
在这种题目中,题目会定义一种等价关系。满足等价关系的两种元素被看成同一种元素。这样就可以把这些元素分为很多个等价类,等价类中的元素相互等价。通常题目会让你求出等价类的个数。怎么来解决这种类型的问题呢?接下来我们引入Burnside引理。
Burnside引理
设置换群G为等价关系集合,且对于任意\(f,g\in G,都有fg\in G\) 。
记C(f)为经置换f作用后不动点的个数。则等价类个数L满足\[L=\frac{ \sum_{f \in G} {C(f)} }{|G|}\]
证明:
设\(Z_k\)为使k为不动点的置换集合,\(E_k\)为元素k所在的等价类。
\[ \sum_{f \in G} C(f) = \sum_{i=1}^n Z_i \]
而\[ \sum_{i=1}^n Z_i =\sum_{i=1}^L |E_i||Z_i| \]
又\[\because |Ei||Zi|=|G|\]
\[\therefore \sum_{i=1}^L |E_i||Z_i|=L|G|\]
我的理解是:
每一个置换的不动点个数之和就是使每一个元素不动的置换个数之和,所以\[ \sum_{f \in G} C(f) = \sum_{i=1}^n Z_i \]
而同一个等价类中使一个元素不动的置换个数相等,所以\[ \sum_{i=1}^n Z_i =\sum_{i=1}^L |E_i||Z_i| \]
又由轨道-稳定集定理,即“轨道大小×稳定化子数=变换个数”,(具体证明可以参照 《组合数学》(第5版)P181 定理4-11),所以\[ \sum_{i=1}^L |E_i||Z_i|=L|G|\]
至于Polya定理的证明很容易用Burnside引理解决,这里不再赘述。
置换群、Burnside引理与等价类计数问题的更多相关文章
- 置换群 Burnside引理 Pólya定理(Polya)
置换群 设\(N\)表示组合方案集合.如用两种颜色染四个格子,则\(N=\{\{0,0,0,0\},\{0,0,0,1\},\{0,0,1,0\},...,\{1,1,1,1\}\}\),\(|N|= ...
- [bzoj1004][HNOI2008][Cards] (置换群+Burnside引理+动态规划)
Description 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红 ...
- BZOJ 1004: [HNOI2008]Cards( 置换群 + burnside引理 + 背包dp + 乘法逆元 )
题意保证了是一个置换群. 根据burnside引理, 答案为Σc(f) / (M+1). c(f)表示置换f的不动点数, 而题目限制了颜色的数量, 所以还得满足题目, 用背包dp来计算.dp(x,i, ...
- 等价类计数(Polya定理/Burnside引理)学习笔记
参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交 ...
- Burnside引理与polay定理
#Burnside引理与polay定理 引入概念 1.置换 简单来说就是最元素进行重排列 是所有元素的异议映射,即\([1,n]\)映射到\([1,n]\) \[ \begin{pmatrix} 1& ...
- jzoj5988. 【WC2019模拟2019.1.4】珂学计树题 (burnside引理)
传送门 题面 liu_runda曾经是个喜欢切数数题的OIer,往往看到数数题他就开始刚数数题.于是liu_runda出了一个数树题.听说OI圈子珂学盛行,他就在题目名字里加了珂学二字.一开始liu_ ...
- 等价类计数问题(Polya定理和burnside引理)
零.约定: (置换等名词会在前置知识中有解释) \(1.\)在本文中,题目要求的染色方案等统称为"元素". \(2.\)两个元素严格相等我们记做"\(=\)", ...
- 等价类计数:Burnside引理 & Polya定理
提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ ...
- 置换群和Burnside引理,Polya定理
定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
随机推荐
- OpenCV3.0 HDR(高动态范围)示例代码以及用法
OpenCV 3.0以及以后版本集成了HDR算法,样例代码的路径为: .\sources\samples\cpp\tutorial_code\photo\hdr_imaging.cpp. 实现算法的参 ...
- Linux pmstat命令
mpstat是linux一款实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中.在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU ...
- 自己动手搭建一个简易的SpringBoot环境
什么是springboot? Spring Boot俗称微服务.Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特 ...
- python_11_字符编码
什么是字符编码? --世界上有很多国家,每个国家都有自己独特的语言,所以在计算机普及的当今世界, 每个国家都有自己的字符编码,本国的软件运行在其他国家的机器上,会出现乱码, 有utf-8,gbk等各种 ...
- python_如何定义装饰器类?
案例: 实现一个能将函数调用信息记录到日志的装饰器 需求: 把每次函数的调用时间,执行时间,调用次数写入日志 可以对被装饰函数分组,调用信息记录到不同日志 动态修改参数,比如日志格式 动态打开关闭日志 ...
- JS动态获取当前时间
HTML部分: <div class="div"> <div id="div"> </div> </div> C ...
- CColor类封装
CColor类封装 Color.h #pragma once #include <sstream> #include <string> using namespace std; ...
- secureCRT sftp使用
sftp-- help 可用命令: cd 路径 更改远程目录到"路径" lcd 路径 更改本地目录到"路径" chgrp group path 将文件" ...
- PHP面试题超强总结(PHP中文网)
PHP面试基础题目 1.双引号和单引号的区别 双引号解释变量,单引号不解释变量 双引号里插入单引号,其中单引号里如果有变量的话,变量解释 双引号的变量名后面必须要有一个非数字.字母.下划线的特殊字符, ...
- 2017noip普及组赛前注意事项总结
petr 大神镇场 距人生第一场noip只差4天半了(好紧张) 总结几下四道题的做题策略 NO1 第一题一般是送分的,认真读题,别太草率,多想几遍再动手,把重要的地方圈一圈.画一画,自己找几个数据多试 ...