在组合数学中有这样一类问题,比如用红蓝两种颜色对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定理。用这个定理计算,我们只需要找到每个置换的循环节即可。

Burnside引理和polay计数学习小记的更多相关文章

  1. Burnside引理和polay计数 poj2409 Let it Bead

    题目描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ...

  2. Burnside引理和Polya定理之间的联系

    最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题: 对颜色限制的染色 例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着 ...

  3. Burnside引理和Polya定理

    转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...

  4. Burnside引理与polay定理

    #Burnside引理与polay定理 引入概念 1.置换 简单来说就是最元素进行重排列 是所有元素的异议映射,即\([1,n]\)映射到\([1,n]\) \[ \begin{pmatrix} 1& ...

  5. mongodb入门学习小记

    Mongodb 简单入门(个人学习小记) 1.安装并注册成服务:(示例) E:\DevTools\mongodb3.2.6\bin>mongod.exe --bind_ip 127.0.0.1 ...

  6. javascript学习小记(一)

    大四了,课少了许多,突然之间就不知道学什么啦.整天在宿舍混着日子,很想学习就是感觉没有一点头绪,昨天看了电影激战.这种纠结的情绪让我都有点喘不上气啦!一点要找点事情干了,所以决定找个东西开始学习.那就 ...

  7. js 正则学习小记之匹配字符串

    原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高 ...

  8. js 正则学习小记之左最长规则

    原文:js 正则学习小记之左最长规则 昨天我在判断正则引擎用到的方法是用 /nfa|nfa not/ 去匹配 "nfa not",得到的结果是 'nfa'.其实我们的本意是想得到整 ...

  9. js 正则学习小记之NFA引擎

    原文:js 正则学习小记之NFA引擎 之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee 等大神都把正则玩的出神入化后发现我只是个战五渣.  求抱大腿,求大神调教. 之前大致有个印象,正 ...

随机推荐

  1. python之字串

    python字串声明: 单引('), 双引("), 三引(''' 或 """"). python字串前缀: r表示原生字串, 字串内容: (1)不能包 ...

  2. VBS基础篇 - 条件语句

    经常地,当我们编写代码时,我们需要根据不同的判断执行不同操作,我们可以使用条件语句完成这个工作. If...Then...Else 在下面的情况中,您可以使用 If...Then...Else 语句: ...

  3. 如何利用OpenCV自带的级联分类器训练程序训练分类器

    介绍 使用级联分类器工作包括两个阶段:训练和检测. 检测部分在OpenCVobjdetect 模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍.当前的指南描述了如何训练分类器:准备训练数 ...

  4. CGI与Servlet的区别和联系

    1. 定义: CGI(Common Gateway Interface 公共网关接口)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. 2. 功能: 绝大多 ...

  5. 微信wap开发,页面显示元素不全-微信开发(asp.net)

    最近在开发的微信的微商城,出现这样一种情况: pc上浏览正常,但是一到手机上浏览就会缺少部分元素 解决办法: 找了很多原因,还通过uc浏览器把网页到存下来了,发现并没有缺少元素,只是没有显示出来,后来 ...

  6. 《Dive into Python》Chapter 2 and Chapter 3 笔记

    Example 2.1. odbchelper.py def buildConnectionString(params): """Build a connection s ...

  7. 如何将jsp中<input>设为只读

    将一个input变为只读,可以使用 readonly 属性 和 disabled 属性.  用disabled 属性时,文字显示为灰色.  下面的两种方法都是可以的: <input id =&q ...

  8. FileOutputStream和FileInputStream

    package one.string; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFound ...

  9. cygwin如何断点续传

    对于Cygwin,如果想安装的东西比较多的话,推荐先选择“Download without installing”,下载完了再从本地安装. 好了,说关于断点续传.我所知道的是—— 网上有说法:下载失败 ...

  10. *[codility]Country network

    https://codility.com/programmers/challenges/fluorum2014 http://www.51nod.com/onlineJudge/questionCod ...