先定义几个含义和符号:
起始状态/方法/位置/元素/:以染色为例,起始状态是所有的染色方案,方法是以起始状态所有染色方案为基准转变为新的染色情景的操作(如旋转),位置则必须是没有任何染色效果的抽象空间,元素则是各种颜色
循环: 在方法作用下,元素在位置上形成一个首尾相接的环(且定义这些位置是等价的)
迹: 在方法作用下,循环所遍及到的所有位置的集合
等价关系:一个置换集合G,如果一个置换方法能把其中一个方案映射到另一个方案,则二者是等价的
等价类: 满足等价关系的方案属于同一等价类,如:这里有6个等价类

C(pi):表示pi方法形成循环的个数
循环的阶:循环中元素个数
Ck(pi):表示pi中k阶循环个数
如:p1=(154)(2)(3)
C(p1)=3,C1(p1)=1,C2(p1)=0,C3(p1)=2
-------------------------------------------------
C(fk):对象是“所有染色方案(且将每种方案效果合并起来)”
           对于每个染色方案 循环阶为1的fk方法的个数的总和 (即fk方法使所有染色方案哪些位置元素保持不变)
C'(fk):对象是“位置”
            fk方法下的循环个数
Zk: k不动置换类 {p|p属于G,p(k)=k},且Zk是G的子群 (使k位置元素不变的所有方法,|Zk|也叫k的稳定化子数)-->>这东西的存在其实就是哲学里的,”先抓一个定住,看其他的怎么变化“中的使之定住稳定住的东西
Ek:等价类 {a1(=k),a2,...,al},G中总存在pi,pi(a1)=ai(i=1,2,..l) (使这几个位置是等价的所有方法,|Ek|也叫k的轨道大小)
|Zk|*|Ek|=|G|: 轨道-稳定集定理:k的轨道大小*k的稳定化子数=总的变换个数 (G中所有的方法按k的轨道分类,对于每一个轨道来说,在这个轨道上的方法数为Zk,而每个轨道方法数一定相等。(由拉格朗日定理,Zk是子群就满足被整除的性质)
(注意这里”方法“不能跟”元素“这两个概念混在一起,方法是指对同一位置上“任意元素”都有相同效果,所以不要老纠结于元素的变化)
|H|整除|G|:拉格朗日定理。其中H是有限群G的子群(H的陪集要么重叠要么不相交,H的所有陪集的并等于G)
陪集: H为G的子群,对任意G中a,aH为陪集
位置方法转化定理:sgma(k=1~n)|Zk|=sgma(k=1~|G|)C(fk) (这里仅仅就是转换角度,将研究对象从位置k上的所有方法转变为方法fk对应的所有位置,最后求和还是一个东西,画张图就能明白)

burnside引理:
我们现在给出n个位置,那么根据等价类定义,有些位置上的等价类是相同的,Ei=Ej=Ek
我们要求不同的等价类个数,那么实际枚举位置k(1..n)可以想成对应的Ek为答案的贡献(1/|Ek|)
即 L=sgma(k=1~n)(1/|Ek|) //再用|Zk|*|Ek|=|G|: 轨道-稳定集定理进行变形,有
=(1/|G|)sgma(k=1~n)(|Zk|) //再用位置方法转化定理
=(1/|G|)sgma(k=1~|G|)C(fk)

但是,如对n个位置用m种颜色染色问题:
利用Burnside引理要首先列出所有n^m种可能的染色方案,然后找出在每个置换下保持不变的方法数。
显然当m或n很大的时候,操作会非常繁琐。 这时就需要用到polya定理。

polya定理:
它是抛弃起始状态(染色方案)这种观念而存在的定理(因为循环的迹上每个元素的选取是等价的,最后只要直接乘元素个数就行)
它而是将注意力完全放在抽象位置上,用C'(fk)操作,每个循环的迹有m种选择颜色的权利,所以m^(C'(fk))就是fk方法下不重复的染色图像个数(即等价类个数)
C(fk)=m^(C'(fk)) 两者其实都代表fk方法下等价类个数(这两者间直接证明基本上是不可能的,别妄想了),那么:
在所有方法下的等价类个数的总和除以方法数=在所有方法下的等价类个数
L=(1/|G|)sgma(k=1~|G|)m^(C'(fk))

burnside+polya 整理的更多相关文章

  1. POJ burnside&&polya整理练习

    POJ 2409 Let it Bead 这题就是polya公式的直接套用,唯一麻烦的是置换群的种类数,由于可以翻转,所以除了要加上pow(c,gcd(s,i))这些平面旋转的置换群,还要加上翻转的. ...

  2. Burnside&Polya

    以前只是直接用了这两个式子..今天才仔细看了证明..[网上的真是难懂啊 我看的几个博客地址(各有优缺): 其实如果能懂的话 只看博客B就可以了 首先是一些置换群方面的定义和性质  博客A:http:/ ...

  3. Burnside&Polya总结

    这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...

  4. Burnside&Polya总结

    这里就算是一个小总结吧- 附参考的网址: http://blog.sina.com.cn/s/blog_6a46cc3f0100s2qf.html http://www.cnblogs.com/han ...

  5. bzoj1004 [HNOI2008]Cards【Burnside/Polya】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1004 一道好题,但并不是好在融合了三个“考点”(计数,背包dp,逆元),其实背包dp以及求逆 ...

  6. 等价类计数:Burnside引理 & Polya定理

    提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ ...

  7. 【BZOJ】【1004】【HNOI2008】Cards

    Burnside/Polya+背包DP 这道题目是等价类计数裸题吧……>_> 题解:http://m.blog.csdn.net/blog/njlcazl_11109/8316340 啊其 ...

  8. 2017-12 CDQZ集训(已完结)

    从联赛活了下来(虽然分数倒一……),接下来要去CDQZ集训啦…… DAY -2 2017-12-16 被老师安排负责一部分同学的住宿以及安排…… 抓紧时间继续学习,LCT真好玩啊真好玩…… 晚上放假了 ...

  9. 各种注意事项(还有c++的一些操作)

    转c++时间: 2017年8月9号 1.记得打头文件 2.=与==的区别(赋值|比较) 3.各种运算符的比较级(与Pascal不同),主要是==与位运算 *4.在OJ上scanf和printf时间优于 ...

随机推荐

  1. springboot 整合 redis

    jedis 和 lettuce 都是用来连接 redis 的客户端,jedis 如果不使用连接池是非线程安全的,lettuce 使用 netty 线程安全且并发性能更好: springboot 2.x ...

  2. Python 基于Python实现的ssh兼sftp客户端(上)

    基于Python实现的ssh兼sftp客户端   by:授客 QQ:1033553122 实现功能 实现ssh客户端兼ftp客户端:实现远程连接,执行linux命令,上传下载文件 测试环境 Win7 ...

  3. ionic 兼容title居中显示和tab栏在显示底部

    在app.js里的 .config 里添加配置,同时在函数中引入 $ionicConfigProvider,具体格式如下所示: .config(function($stateProvider, $ur ...

  4. Python3 jupyter notebook 服务器搭建

    1. jupyter notebook 安装 创建 jupyter 目录 mkdir jupyter cd jupyter/ 创建独立的 Python3 运行环境,并激活进入该环境 virtualen ...

  5. 关于iframe跨域实践

    提要 项目中与到iframe子页面中需要通过top获取在父页面中的全局变量的需求,由于App部署的缘故,导致父页面和iframe子页面分别在不同的端口下,导致iframe跨域现象,通过查阅资料进行问题 ...

  6. android默认开启adb调试方法分析

    用adb调试android时,每次接入usb线,都会提示一个确认打开usb调试功能的窗口,有时候,我们需要默认打开usb调试功能.或者无需弹出对话框,直接默认开启.这个我们需要分析adb的流程了. a ...

  7. mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库

    本节相关: 创建数据库 查看数据库 修改数据库 删除数据库 首发时间:2018-02-13 20:47 修改: 2018-04-07:考虑到规范化,将所有语法中“关键字”变成大写;以及因为整理“mys ...

  8. SQL Server中如何识别、查找未使用的索引(unused indexes)

    在SQL Server中,索引是优化SQL性能的一大法宝.但是由于各种原因,索引会被当做"银弹"滥用,一方面有些开发人员(甚至是部分数据库管理员)有一些陋习,不管三七二十一,总是根 ...

  9. RMAN命令DELETE操作总结

    本篇总结一下RMAN命令中的DELETE操作,DELETE命令用于删除RMAN备份记录以及相应的物理文件. To delete physical backups and copies as well ...

  10. peewee基本操作

    本文将简单的介绍Peewee,一览它的主要特点,主要涉及到: 模型定义 存储数据 检索数据 注意:如果你偏爱稍微高级一点的教程, peewee建立类似twitter应用 是一篇结合Flask框架与pe ...