Burnside引理和polay计数学习小记
在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种。有多少种不同的染色方案?我们列举出,那么一共有16种。但是我们发现,3,4,5,6是同一种,7,8,9,10是用一种,11,12是同一种,13,14,15,16是同一种,也就是只有6种本质上不同的染色。小规模我们可以列举所有方案然后再选择,大规模的时候是很难列举所有方案的。下面,我们说明用Burnside引理和polay计数来解决这类问题。
一、置换群G:即指所有的置换。上面的例子中置换只有4种,即旋转0、90、180和270度。其中G的大小记为|G|=4。
二、(1)对于每个元素K,这里的K满足1<=k<=16,G中使得K保持不变的置换组成的全体,称为。比如四种置换都可以使得1保持不变,而只有第一种和第三种置换使得11保持不变,所以我们有(G中的元素用g来表示):
(2)对于每个元素K,在四种置换的作用下依次得到的元素称作K在G下的轨迹,表示为,代表一个等价类。比如1在四种置换下都得到1,3在四种置换下依次得到3,4,5,6。所以我们有:
我们发现在同一个等价类中的元素的等价类都是一样的,比如3,4,5,6的等价类都是跟3一样的。在这里我们给出一个公式,自己计算下显然成立:
四、接下来我们计算每个元素在各个置换下不变的次数总和。如下图所示。
由上图可得到(注意上图是用a来表示置换的,我们都是用的g),比如1在第一种置换下没有变,那么,且在第一种置换下16种都没有变,第二种置换下只有1、2没有变,第三种置换下只有1,2,11,12没有变,第四种置换下只有1、2没有变,那么有:
其实我们有下面的式子成立:
下面,我们用n来表示总的元素个数,上面n=16,我们用|G|来表示置换个数,上面|G|=4。我们设有L个等价类(我们在上面说了,比如3,4,5,6的等价类都是一样的,上面其实只有5个等价类,{1},{2},{3,4,5,6},{11,12},{13,14,15,16}),我们有:
所以,
这个就是著名的Burnside引理。注意这里的L其实就是我们要求的不同的染色方案的数目。因为L代表的是不同的等价类,同一个等价类就好比是一种染色。我们得到L=(16+2+4+2)/4=6,跟一开始我们得到的答案是一样的。使用这个引理计算时,第一步求出所有的置换,第二步计算每种置换下的不变元素的个数。但是,我们发现,有时候第二步的这个计算是不那么容易的。下面我们说polay定理。
五、我们首先说明循环节是个啥。
比如对于一个n=5,在某一种置换下(1,2,3,4,5)变成了(3,5,1,4,2),我们将其记为(13)(25)(4),即该置换的循环节为3。也就是两个置换节之间是不相交的。对于上面的那个问题,我们对四个方格标号1,2,3,4。
构造置换:
我们发现,的同一个置换节中的元素用同一种颜色(我们现在假设用m种颜色,刚才m=2)染色得到的方案数
就是在上面在
置换下不变的元素数:
由此我们得到:
这就是举世闻名的polay定理。用这个定理计算,我们只需要找到每个置换的循环节即可。
BEB(E[@S%7D5W3DPU3S.jpg)
Burnside引理和polay计数学习小记的更多相关文章
- Burnside引理和polay计数 poj2409 Let it Bead
题目描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ...
- Burnside引理和Polya定理之间的联系
最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着 ...
- Burnside引理和Polya定理
转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...
- Burnside引理与polay定理
#Burnside引理与polay定理 引入概念 1.置换 简单来说就是最元素进行重排列 是所有元素的异议映射,即\([1,n]\)映射到\([1,n]\) \[ \begin{pmatrix} 1& ...
- mongodb入门学习小记
Mongodb 简单入门(个人学习小记) 1.安装并注册成服务:(示例) E:\DevTools\mongodb3.2.6\bin>mongod.exe --bind_ip 127.0.0.1 ...
- javascript学习小记(一)
大四了,课少了许多,突然之间就不知道学什么啦.整天在宿舍混着日子,很想学习就是感觉没有一点头绪,昨天看了电影激战.这种纠结的情绪让我都有点喘不上气啦!一点要找点事情干了,所以决定找个东西开始学习.那就 ...
- js 正则学习小记之匹配字符串
原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高 ...
- js 正则学习小记之左最长规则
原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整 ...
- js 正则学习小记之NFA引擎
原文:js 正则学习小记之NFA引擎 之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee 等大神都把正则玩的出神入化后发现我只是个战五渣. 求抱大腿,求大神调教. 之前大致有个印象,正 ...
随机推荐
- ASP.NET MVC 学习第二天
今天使用mvc完成简单的增删改,内容比较简单,来熟悉一下mvc,数据库操作是用前面的ef,也算是温习一下ef吧. 新建mvc项目,在项目中的Models内添加ef,我这里只操作一下简单的user表.里 ...
- 多线程 1-pthread 和NSThread
一.基本内容介绍: 进程: 正在运行的程序就叫进程 每个进程之间是相互独立的,每个进程均运行在其专用且受保护的内存空间内. 线程: 在程序内工作的基本执行单元(每个进程至 ...
- Careercup - Facebook面试题 - 5344154741637120
2014-05-02 10:40 题目链接 原题: Sink Zero in Binary Tree. Swap zero value of a node with non-zero value of ...
- js遍历集合
首先,描述一下问题.由于需要后台取出数据,遍历展示在table中,大体如下: 后台取出的是 Map<String , List<Object>>,下面是我写得比较朴素一点的写法 ...
- SOLID architecture principles using simple C# examples
转:http://www.codeproject.com/Articles/703634/SOLID-architecture-principles-using-simple-Csharp?msg=4 ...
- 2434: [Noi2011]阿狸的打字机 - BZOJ
Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母. 经阿狸研究发现,这个打字机是这样工作的 ...
- svn: E155004: ..(path of resouce).. is already locked
svn: E155004: ..(path of resouce).. is already locked I'm getting an error when trying to commit a c ...
- unity调用MMBilling_2.4.2 Android SDK.
原地址:http://www.cnblogs.com/ayanmw/p/3736284.html 项目要使用android 的移动支付SDK 应用内付费[http://dev.10086.cn/wik ...
- 1009-2的N次方
描述 编程精确计算2的N次方.(N是介于100和1000之间的整数). 输入 正整数N (100≤N≤1000) 输出 2的N次方 样例输入 200 样例输出 16069380442589902755 ...
- javascript分享到的源码
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...