本人不确保结果正确性。

类似的题集也很多,比如 https://ac.nowcoder.com/acm/contest/27275#question

我做了部分题目的题解 https://www.cnblogs.com/yhm138/articles/15847432.html

都是利用了群论研究计数问题。它们联系密切,可以从Burnside引理推出Polya定理。

记\(c(f)\)是置换\(f\)的圆分解后cycle个数,颜色数\(m\)

其实Polya定理就是说置换\(f\)的不动点个数为\(m^{c(f)}\)。

(因为对每个cycle而言,其中的各元素都涂相同种颜色才会在置换\(f\)作用下保持不变)

Burnside引理

用\(D(a_j)\)表示在置换\(a_j\)下不变的元素的个数。\(L\)表示本质不同的方案数目。

\[L=\frac{1}{|G|}\sum\limits_{j=1}^{s}D(a_j)
\]

用中文表述Burnside引理的话,

集合\(M\)关于置换群\(G\)的等价类数目,等于\(G\)中每个置换下不动点的个数的算术平均数。

例题1.1

问你长为4的01构成的环有多少种?

对应的置换群是\(\mathbb{Z_4}\)群

记\(a_1\)是恒等变换\(\begin{pmatrix} 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \end{pmatrix}\),\(a_2\)是\(\begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 3 & 4 & 1 \end{pmatrix}\),\(a_3\)是\(\begin{pmatrix} 1 & 2 & 3 & 4 \\ 3 & 4 & 1 & 2 \end{pmatrix}\),\(a_4\)是\(\begin{pmatrix} 1 & 2 & 3 & 4 \\4 & 1 & 2 & 3 \end{pmatrix}\)

在置换\(a_1\)下不变有16种(全部长度为4的01排列共\(2^4种\))

在置换\(a_2\)下不变有2种 0000和1111

在置换\(a_3\)下不变有4种 0000和1111和1010和0101

在置换\(a_4\)下不变有2种 0000和1111

\[L=\frac{1}{4}(16+2+4+2)=6
\]

例题1.2

写个特没意思的,现在想知道3-排列集合在\(\mathbb{S_3}\)群下的等价类个数

\[1=\frac{1}{6}(0+0+0+0+0+6)
\]

例题1.3

问你八面体配合物 Mabcdef 的异构体数目。考虑到正八面体和正六面体是对偶多面体,实际这也是正六面体的6个面做六染色(每个颜色都出现一次)的本质不同方案数目。

八面体的旋转群是\(\mathbb{S_4}\)

\[30=\frac{1}{4!}(6!+\underbrace{0+0+0+...+0}_{23个0})
\]

Polya定理

设\(G\)是\(p\)个对象的一个置换群,用\(m\)种颜色涂染\(p\)个对象,则不同染色方案为:

\[L=\frac{1}{|G|}(m^{c(g_1)}+m^{c(g_2)}+...+m^{c(g_s)})
\]

其中:\(G=\{g_1,g_2,...,g_{s}\}\),\(c(g_i)\)为置换\(g_i\)的循环节数(即置换圆分解后的圆个数)

例题2.1

等边三角形的三个顶点用红绿蓝三种颜色来着色,问你本质不同的方案数。

对应的群是二面体群\(\mathbb{D_3}=\{(1)(2)(3),(123),(321),(1)(23),(2)(13),(3)(12)\}\)

\[L=\frac{1}{6}[(3)^3+(3)^1+(3)^1+(3)^2+(3)^2+(3)^2]=10
\]
\[\begin{aligned}
L(r,g,b)&=\frac{1}{6}\{(r+g+b)^3+(r^3+g^3+b^3)+(r^3+g^3+b^3)+[(r+g+b)(r^2+b^2+g^2)]+[(r+g+b)(r^2+b^2+g^2)]+[(r+g+b)(r^2+b^2+g^2)]\}\\
&=\frac{1}{6}\{6 b^3+6 b^2 g+6 b^2 r+6 b g^2+6 b g r+6 b r^2+6 g^3+6 g^2 r+6 g r^2+6 r^3\}
\end{aligned}
\]

如果想看特定颜色组合情形,用类似母函数的方法替换3为\((r+g+b)\)或\((r^2+g^2+b^2)\)或\((r^3+g^3+b^3)\)

比如\((1)(23)\)对应的就是\((r+g+b)(r^2+g^2+b^2)\)

\((123)\)对应的就是\((r^3+g^3+b^3)\)

例题2.2

正方体的4条体对角线用红蓝两种颜色着色,问你有多少种本质不同的着色方案。

对应的置换群是\(\mathbb{S_4}\),里面的旋转诱导了(4根)体对角线的置换,并且由其确定。

把体对角线看成元素。

\(\mathbb{S_4}\)共有24个置换,

圆分解后圆的个数 这样的置换个数
1 6
2 11
3 6
4 1
\[\begin{aligned}
L&=\frac{1}{24}[\sum\limits_{i=1}^{4}S_1(4,i)\cdot2^i]\\
&=\frac{1}{24}(6\cdot2^1+11\cdot2^2+6\cdot2^3+1\cdot2^4)\\
&=5
\end{aligned}
\]

例题2.3

正方体的8个顶点用红蓝两种颜色着色,问你有多少种本质不同的着色方案。

有24个置换,这次把8个点看作元素

置换 圆分解后圆个数 这样的置换个数
恒等变换 8 1
4 6
4 8
2,4 6,3
①:对棱中点连线为转轴,对应一个180度旋转,这样的旋转轴有6个(对应6对相对的棱),故6个旋转
②:体对角线为转轴,对应一个120度或者240度旋转,这样的旋转轴有4个(对应4个主对角线),故8个旋转
③:对面中心连线为转轴,对应一个90,180,270度旋转,这样的旋转轴有3个(对应3个坐标方向),因此有3x3=9个旋转
\[\begin{aligned}
L&=\frac{1}{24}[1\cdot2^8+6\cdot2^4+8\cdot2^4+6\cdot2^2+3\cdot2^4]\\
&=23
\end{aligned}
\]

例题2.4

正方体的6个面用红蓝两种颜色着色,问你有多少种本质不同的着色方案。

有24个置换,这次把6个面看作元素

置换 圆分解后圆个数 这样的置换个数
恒等变换 6 1
3 6
2 8
3,4 6,3
\[\begin{aligned}
L&=\frac{1}{24}[1\cdot2^6+6\cdot2^3+8\cdot2^2+6\cdot2^3+3\cdot2^4]\\
&=10
\end{aligned}
\]

例题2.5

正四面体的4个顶点用红蓝两种颜色着色,问你有多少种本质不同的着色方案。

有12个置换:

恒等变换,1个

顶点和对面中点连线为转轴的120°或240°旋转,共8个

对棱中点连线为转轴的180°旋转,共3个

把4个顶点看作元素,

这是交错群\(\mathbb{A_4}=\{(0)(1)(2)(3),(123),(132),(021),(012),(031),(013),(023),(032),(01)(23),(03)(12),(02)(13)\}\)

\[L=\frac{1}{12}(1\cdot2^4+8\cdot2^2+3\cdot2^2)=5
\]

如果是给正四面体的4个面用红蓝两种颜色着色,答案也是5。把4个面看作元素,群也是交错群\(\mathbb{A_4}\)

我想到了以前算同分异构体的时候,当时还不知道Burnside引理和Polya定理,群论更是一窍不通。。。

我的入门书应该是Nathan Carter的Visual Group Theory

推荐这个github.ioGroupExplorer

等价类计数:Burnside引理和Polya定理 阐述和相关例题的更多相关文章

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

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

  2. Burnside引理和Polya定理

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

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

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

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

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

  5. Burnside引理与Polya定理

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Little Tiger vs. Deep Monkey(hdu4815)01背包

    题:http://acm.hdu.edu.cn/showproblem.php?pid=4815 题意:已知n个题以及每个题答对的得分,给出p概率 小老虎vs小猴子答题:已知小猴子随机答题,请问老虎至 ...

  2. 【2020NOI.AC省选模拟#9】C. 重复

    题目链接 原题解: 通过计数相同的子序列对个数的方式来计算答案. 设$f(i,j)$为$S$的前$i$和$j$个字符的公共子序列对个数. 当$S_i=S_j$时,$f(i,j)=f(i,j-1)+f( ...

  3. Windows相关产品密钥

    Win7/Win8/Win10系统下Visual Studio 2013各个版本的密钥:Visual Studio Ultimate 2013: BWG7X-J98B3-W34RT-33B3R-JVY ...

  4. halcon学习

    apply_metrology_model: 目标和背景灰度差别很小,但目标大概位置确定,需要确定目标位置的圆或者矩形: ball:圆形或矩形和图像其他部分相比为特殊图样

  5. JDK的安装及卸载

    JDK安装及卸载 卸载JDK 删除JAVA安装目录 删除java_home 删除path下关于Java的目录 java-version 查看是否仍能查看 安装JDK 百度搜索JDK8(性能稳定)找到下 ...

  6. python读取Excel文件的操作

    ①通过xlutils在已有表中写数据(这种方法会改变excel的样式) import xlrd,xlwt from xlutils.copy import copy 将已存在的Excel表格赋值给变量 ...

  7. 20200923--计算鞍点(奥赛一本通P91 4)

    给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点.鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值. 例如:在下面的例子中(第4行第1列的元素就是鞍 ...

  8. springboot 项目启动后访问不论什么请求的是spring的注册页面Please sign in Username || springboot禁用security

    解决方法: 1.在启动类上添加注解@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class}) 2.或者:@SpringB ...

  9. 第四天 while 嵌套循环语句

    python全栈开发笔记第四天 while 嵌套循环语句 while 条件 while 条件 print() print() 例题:num1 =int(input("num1:") ...

  10. toString能转换number类型吗

    let num = 60console.log(toString(num)) // [object Undefined] console.log(String(num)) // 60