转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703

Burnside引理
  笔者第一次看到Burnside引理那个公式的时候一头雾水,找了本组合数学的书一看,全是概念。后来慢慢从Polya定理开始,做了一些题总算理解了。本文将从最简单的例子出发,解释Burnside引理和Polya定理。然后提供一些自己做过的和上述定理相关的题目和解题报告。
  Burnside引理是为了解决m种颜色给n个对象染色的计数问题。
 【例题1】如图1所示,2×2方格中每个格子可以选择染上2种颜色(红色或白色)。那么总共是2^4=16种情况。现在要问,如果旋转0度、90度、180度、270度后状态不变的方案算成同一种方案,问总共有多少种不同的方案。
图1
将每种旋转认为是一种"置换",定义为gi,则上述问题总共有4种置换,分别描述为:
图2
用D(gi)表示在gi这种"置换"的作用下没有改变状态的方案集合,则根据图2易得:
图3
用|D(gi)|代表集合D(gi)中元素的个数,则有Burnside引理表示如图4所示:
图4
L代表m种颜色给n个对象染色的总方案数,|G|代表置换个数,|D(gi)|代表在gi这种置换作用下没有改变状态的方案个数。
  上文中的例子套用Burnside引理就是 L = (16+2+4+2)/4 = 6。
  这道题几乎是所有解释Burnside引理的文章都会提到的一个例子,因为它看起来很直观,然而当染色数或对象数逐渐增多时,方案数呈指数级增长,再来举个例子。
  【例题2】一个3×3的方格,用10种颜色给每个格子染色,旋转0度、90度、180度、270度后相同的算成相同,问总共有多少种方案。
图5
  给每个格子编个号,每个格子有10种颜色,总共9个格子,总情况数10^9,已经没办法枚举出来了。继续从Burnside引理的定义出发,|D(gi)|代表在gi这种置换作用下没有改变状态的方案个数,置换总共四种,那么我们将这四种置换都列出来:
  1)旋转0度:也就是我们将这个3×3的方格旋转0度后,有多少种方案是没有改变状态的,答案很显然,就是10^9。也就是说,无论你哪个格子染成什么颜色都没关系,旋转0度前后状态不变(这是显然的)。
  2)旋转90度:①③⑦⑨循环变换、②④⑥⑧循环变换,⑤永远不变。表示成置换群的乘积就是(1379)(2468)(5)。那么我们发现,只要在同一个循环中的格子颜色一致,则在这种置换下状态永远不会改变。所以(1379)可以取10种颜色、(2468)可以取10种颜色、(5)可以取10种颜色,总方案数10^3。
  3)旋转180度:置换群为(19)(28)(37)(46)(5),总方案数10^5。
  4)旋转270度:类似旋转90度的,方案数10^3。
  所以根据Burnside引理,总方案数就是(10^9 + 10^3 + 10^5 + 10^3)/4。
  根据这个例子,就可以很好的理解Polya定理了。
Polya定理
图6
m种颜色给n个对象染色的方案数如图所示。G代表变换(置换)的种类,其中Ci代表每种置换下的循环节。

Burnside引理和Polya定理的更多相关文章

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

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

  2. Burnside引理和polay计数学习小记

    在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...

  3. 置换群和Burnside引理,Polya定理

    定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...

  4. Burnside引理与Polya定理

    感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运 ...

  5. Burnside引理与Polya定理 学习笔记

    原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...

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

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

  7. 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)

    题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...

  8. 等价类计数(Polya定理/Burnside引理)学习笔记

    参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交 ...

  9. burnside引理&polya定理

    burnside引理&polya定理 参考资料: <polya计数法的应用>--陈瑜希 黄学长 置换: 置换即是将n个元素的染色进行交换,产生一个新的染色方案. 群: 一个元素的集 ...

随机推荐

  1. hadoop学习笔记(一):hadoop生态系统及简介

    一.hadoop1.x的生态系统 HBase:实时分布式数据库 相当于关系型数据库,数据放在文件中,文件就放在HDFS中.因此HBase是基于HDFS的关系型数据库.实时性:延迟非常低,实时性高. 举 ...

  2. 问题集录--Android:解决Studio新建项目时,在 Building gradle project info 一直卡住

    Android Studio导入项目的时候,一直卡在Building gradle project info这一步,主要原因还是因为被墙的结果.gradle官网虽然可以访问,但是速度连蜗牛都赶不上.. ...

  3. springmvc 定时器 多数据源

    0.目的:测试网上多数据源切换代码靠不靠谱 1.先说需求:根据摄像头采集到的数据,做一些业务上的特定处理,但是,但是很重要,摄像采集数据不直接存在此数据库,需要定时的去外部DB去取数据,这就涉及到多数 ...

  4. git pull和git pull --rebase的使用

    使用下面的关系区别这两个操作: git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 现在来看看git ...

  5. Java基础教程(7)--运算符

      现在,我们已经学会了如何声明和初始化变量,但你可能想知道如何操作它们.运算符是对一个,两个或三个操作数执行特定操作并返回结果的特殊符号.下表列出了Java中的运算符:   表格中的运算符是按照从上 ...

  6. linux的目录结构及文件基本操作

    1. linux的文件组织目录结构 linux的目录与window的区别 win以存储介质为主,主要以盘符及分区实现文件 管理,再下面才是目录. linux以树形目录结构的形式来构造整个系统,每一个目 ...

  7. intellij idea Entity类报错“Cannot resolve table”

    https://blog.csdn.net/u014290233/article/details/54311954 转载,以便下次查看

  8. 【SSH网上商城项目实战11】查询和删除商品功能的实现

    转自:https://blog.csdn.net/eson_15/article/details/51360804 在第8节我们完成了查询和删除商品类别的功能,那么现在实现查询和删除商品的功能就很好做 ...

  9. 第二天-while循环 格式化输出 运算符 编码

    一.while循环 while 条件: 语句块(循环体)     #判断条件是否成立,若成立执行循环体,然后再次判断条件...直到不满足跳出循环 else: 当条件不成立的时候执行这里,和break没 ...

  10. html打造动画【系列4】哆啦A梦

    我相信每个人的童年都有一个哆啦a梦,一个小小的肚皮里装满了不可思议的哆啦a梦,一个在你无助伤心的时候陪在你身边的哆啦a梦,一个陪你胡思乱想陪你吃铜锣烧的哆啦a梦~今天我们就来画一个我们心中的哆啦a梦吧 ...