在组合数学中有这样一类问题,比如用红蓝两种颜色对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. ASP.NET MVC NonActionAttribute使用说明

    默认情况下,MVC 框架将 controller 类的所有公共方法都视为操作方法. 如果您的 controller 类包含公共方法,并且您不希望它成为操作方法,则必须用 NonActionAttrib ...

  2. [MySql] 设置了UTF8,中文存数据库中仍然出现问号

    运行命令:SHOW VARIABLES LIKE 'character_set_%'; 结果 'character_set_client', 'utf8' 'character_set_connect ...

  3. 敏捷开发之道(四)Scrum概述

    上次的博文敏捷开发之道(二)极限编程XP和敏捷开发之道(三)极限编程XP续中,我们介绍了一下敏捷开发中的XP开发方法,今天咱们来了解另一个比较流行的敏捷开发方法--Scrum. 1.Scrum简介 S ...

  4. windows鼠标消息处理与键盘模拟函数

    1.鼠标坐标问题 BOOL GetWindowRect(   HWND hWnd,   LPRECT lpRect  ); RECT x;//定义一个二维数组x ::GetWindowRect(hwn ...

  5. SharePoint 101 Code Samples are now available

    The Microsoft Office Developer Center has created 101 code samples for SharePoint 2010. These sample ...

  6. diahosting的低配vps弱爆了

    以下仅为一个用户的心声 上年年中的时候买了dia的128M vps,算是我第一个vps.工作以来,我弄了一个wp博客,所以我在上面搭了apache的服务器,但是由于内存低,挂得也快.后来我换了Ngin ...

  7. mysql 执行流程

    mysql 执行流程 我们可以人为的把mysql 的主要功能分为如下模块. 1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buf ...

  8. MyEclipse 安装JRebel进行热部署

    安装环境 版本:myeclipse2015stable2 说明:下面是我已经安装了界面 安装过程 进入市场 出现下面提示,不用管它,点Continue 用关键词搜索 配置 进入JRebel配置中心,配 ...

  9. Eclipse 安装热部署JRebel

    开发环境 sts-3.7.2.RELEASE 安装步骤 1.打开应市场 2.搜索JRebel并进行下载 3.下载完成后点击JReble Configuation进入

  10. memcached+php客户端

    连接memcached <?php $mem = new Memcache; $mem->connect('localhost',11211) or die("connected ...