置换群、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的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...
随机推荐
- php 5.0 与7.0有什么区别
我有更好的答案 发布于2017-05-19 12:30 最佳答案 PHP7特性 PHP 7.0.0 Alpha 1[1] 使用新版的ZendEngine引擎,带来了许多新的特性,以下是不完全列表: 性 ...
- destoon 开启邮箱
- Objective-C基础教程学习笔记(附录)从Java转向Objective-C
Java接口与Objective- C正式协议类似,因为它们都需要实现一组方法.Java具有抽象类,但Objective-C没有.Java具有类变量,但在Objective-C中, 可以使用文件范围内 ...
- Android-第一天
1.google 2.application->application framework->libraries(调用关系) 3.strings.xml 是全局字符串的配置文件 4.ADT ...
- CCF系列之相邻数对(201409-1)
试题编号: 201409-1 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示给 ...
- jQuery时间格式插件-moment.js的使用
jQuery时间格式插件-moment.js的使用 moment.js插件的使用,使用之前在页面引入对应的js文件: 详细的操作可见moment中文官网:http://momentjs.cn/ 日期格 ...
- Java calendar获取月份注意事项
Calendar中月份month得取值是从0开始,到11,对应着日历中的1-12月.所以在用此取月份的话,需要在原有基础上加1.
- diffMerge安装配置使用
概述: 在用git进行源代码版本维护的时候,常常会进行各代码版本之前区别的查看,例如在每次提交改动前进行git diff 可以看到源文件代码相对相应版本或是远程仓库的改动情况,如果有冲突还需要进行me ...
- junit设计模式--组合模式
Composite,英语翻译下,复合,组合. 组合模式有时候又叫做部分-整体模式,它使我们在树形结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户 ...
- maven项目添加findbugs,checkstyle,jacoco,assembly,maven-jar-plugin插件的配置
(1)名称解释(插件的作用) findbugs:检测代码的不明显的语法错误.例如:用了==去比较字符串,定义了没有用的变量-- checkstyle:检测代码的格式规范.例如:方法没有写注释,类的命名 ...