在处理类似下面的问题中,一般的计数方法会出现问题:假如你要用红、蓝两种颜色给一个正四面体的四个顶点着色,试问存在多少种不同的着色方案?

在高中我们常用的方法是模拟涂色过程,分情况讨论,然后基于分步乘法原理。但是在那里没有考虑几何体通过旋转等操作带来的对称性,在本文中,我们就来介绍一种专门处理这类问题的工具——Polya计数。

首先我们要做的是引入一些基本的概念。

置换:

关于置换更多的细节我们在《抽象代数基础教程》中继续讨论,这里我们只需简单的了解其概念即可。

关于置换还需要了解的就是它的合乘运算。

置换这个工具可以方便我们符号化图形的对称分析过程,下面给出要给非常简单的例子,以帮助理解置换如何描述几何体的对称。

考察如下的正方形。

(一个正方形,四个顶点为1234)

我们需要去思考,如何利用置换来描述那些运动,使得正方形位置没变(但是对应标号的顶点可能发生了移动)。

容易看到符合要求的运动有两类。

1)  将正方形绕中心旋转(取顺时针即可)0°、90°、180°、270°.

2)  将正方形按照两条对角线和两条对边中点连线,立体得翻转180°。

那么我们可以发现运动前的正方形顶点序号和运动后的,其实就形成了一个置换。

此时我们开始给出染色方案的数学描述。

基于以上的铺垫,我们可以给出Burnside引理,用于给出一个计数非等价着色数的公式。

在给出Burnside定理之后,我们下面结合几个简单的题目,来加强对这个定理的理解。

问题到这里,就得到很大的改观,之前我们需要基于置换群和着色集合,进行遍历考察来计算Burnside定理和式的一般项,而现在我们只需要,分析置换群G中的每个置换,然后结合颜色数,就可以进行计算了。

我们还需要进一步努力,因为从定理4可以看到,我们用k种颜色形成着色集合,是没有显示颜色的出现次数的,而如果规定某种颜色的出现的次数,我们应该如何处理呢?

最后我们给出立方体的非等价的染色分析,在一般带的考察polya的题目中容易考察但是其对称群较为繁冗容易出错,因此最好一次分析之后记住结论。

例子(立方体的顶点与面的着色):

用制定数量的颜色对立方体的顶点和面进行着色,尝试求立方体的对称群和非等价的着色方案数目。

考察立方体的对称操作,它们一共可分为如下的四种类型共24种对称:

(1) 恒等对称1个。

(2) 固定一对对立面进行旋转:

(a)90°

(b)180°

(c)270°

由于共有三对对立面,所以上面各有3个共9个。

(3) 绕一对对边重点连线旋转180°,由于有6对,这里有6个对称。

(4) 绕对顶点进行旋转:

(a)120°

(b)240°

可以看到一个立方体的对称群友24个置换,下面我们只需要考察每个置换f的type(f),以期得到立方体的非等价染色的生成函数。

同理我们可以对面对称群进行完全一样的讨论,结果如下:

组合数学及其应用——polya计数的更多相关文章

  1. 《程序设计中的组合数学》——polya计数

    我们在高中的组合数学中常常会碰到有关涂色的问题,例如:用红蓝两种颜色给正方形的四个顶点涂色,会有几种不同的方案.在当时,我们下意识的认为,正方形的四个顶点是各不相同的,即正方形是固定的.而实际上我们知 ...

  2. hdu 5868:Different Circle Permutation 【Polya计数】

    似乎是比较基础的一道用到polya定理的题,为了这道题扣了半天组合数学和数论. 等价的题意:可以当成是给正n边形的顶点染色,旋转同构,两种颜色,假设是红蓝,相邻顶点不能同时为蓝. 大概思路:在不考虑旋 ...

  3. hdu 5868 Polya计数

    Different Circle Permutation Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K ...

  4. hdu 2865 Polya计数+(矩阵 or 找规律 求C)

    Birthday Toy Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  5. Polya计数

    Let it Bead Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5365   Accepted: 3585 Descr ...

  6. HDU 4633 Who's Aunt Zhang (2013多校4 1002 polya计数)

    Who's Aunt Zhang Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. 群论&Polya计数

    群论&Polya计数 其实在我听课的过程中,我发现针对于学习OI中的群并没有什么过多必要向内学习... 群 以后会补的. 就是\(QQ\)群. 置换 置换就是一个... \[ \begin{m ...

  8. 组合数学之Polya计数 TOJ1116 Let it Bead

    1116: Let it Bead  Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByteTotal Submit: 7 ...

  9. [置换群&Polya计数]【学习笔记】

    昨天看了一下午<组合数学>最后一章然后晚上去看别人的blog发现怎么都不一样,我一定是学了假的polya 其实是一样的,只不过<组合数学>没有太多的牵扯群论.于是又从群论角度学 ...

随机推荐

  1. HDU 2262 Where is the canteen 期望dp+高斯消元

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2262 Where is the canteen Time Limit: 10000/5000 MS ...

  2. nodeJS + webStrome

    一.配置开发环境: 1.先安装node (1).访问http://nodejs.org打开安装包,正常安装,点击next即可. 为了测试是否安装成功,打开命令提示符,输入node,则进入node.js ...

  3. Good Time 冲刺 五

    一.今日完成任务情况及遇到的问题 第五天 日期:2018.6.18 王怡镔:今天继续在学习中完善编写页面,对之前的页面进行部分改进. 于鑫宇:修改完善布局,复习. 胡雅馨:今天继续改进页面,努力解决时 ...

  4. iOS App之间常用的五种通信方式及适用场景总结

    iOS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,不能随意跨越自己的沙盒去访问 ...

  5. 6/8 sprint2 看板和燃尽图的更新

  6. mysql 函数示例(转)

    MySQL函数大全及用法示例 1.字符串函数ascii(str)   返回字符串str的第一个字符的ascii值(str是空串时返回0)  mysql> select ascii('2');   ...

  7. [转帖]紧急预警:Globelmposter3.0变种来袭,多行业中招

    紧急预警:Globelmposter3.0变种来袭,多行业中招 https://www.csdn.net/article/a/2018-09-04/15959658   CSDN 转载深信服...   ...

  8. 深入理解JAVA虚拟机阅读笔记1——JAVA内存区域

    一.Java内存区域 1.程序计数器 线程私有. 当前线程所执行的字节码的行号指示器.由于JAVA是多线程的,因此每个线程都独立的程序计数器. 异常:没有规定任何OutOfMemeryError情况的 ...

  9. poj3320 Jessica's Reading Problem

    Description Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The fina ...

  10. Linux下安装 mongodb

    1.下载 去官网 https://www.mongodb.com  找到对应版本的mongodb 的下载地址 这样的: https://fastdl.mongodb.org/linux/mongodb ...