组合数学之Pólya计数理论
1 群
群$(G, cdot)$: 闭合, 结合律, 幺元, 逆
1.1 置换群
置换为双射$pi:[n]to [n]$, 置换之间的操作符 $cdot$ 定义为函数的复合, 即$(pi cdot sigma)(i)=pi(sigma(i))$
对称群$S_n$
$S_n$表示$[n]$的所有置换的集合. 容易验证$S_n$和函数复合操作 $cdot$ 构成一个群, 称为$n$元对称群.
$S_n$的子群称为置换群.
循环群$C_n$
定义特殊的置换$sigma$满足$forall i, ~sigma(i)=(i+1)mod n$, $C_n={sigma^t|tge 0}$, $C_n$称为$n$阶循环群, 生成元为$sigma$, 是$n$边正多边形的旋转对称.
Dihedral群$D_n$
定义特殊置换$rho$满足$forall iin [n], ~rho(i)=n-i-1$. 把$rho$加入$C_n$则得到Dihedral群$D_n$. 为正$n$边形翻转和旋转操作的对称群
Cycle decomposition
将置换等价表示为cycle的复合
1.2 群操作

例子: 项链上色
问题: $n$个珠子的项链, 珠子每个是$m$种颜色之一. 形式化的为$x:[n]to[m]$, 即把$m$个颜色分配给$n$个位置. $X={x:[n]to[m]}$为这样的分配的集合.
考虑两种对称操作:
- 旋转: 循环群$C_n$
- 旋转和翻转: dihedral群$D_n$
项链的操作被描述为$X$上的群操作. 对于置换群$G$, 任意$pi in G$和$xin X$, 群操作$picirc x$定义为$(pi circ x)(i)=x(pi(i))$
2 Burnside’s Lemma
2.1 轨道(Orbits)
定义和性质如下:

可以把轨道理解为一个等价类, 同一等价类中的元素可以通过$G$中的操作相互转换.
2.2 invariant set and stabilizer
$G$: 作用于集合$X$上的置换群. $piin G$, $xin X$.
- $pi$的invariant set: $X_pi ={xin X|picirc x=x}$
- $x$的stabilizer: $G_x={piin G|pi circ x=x}$
引理:
证明:
$Gx={x_1,x_2,cdots, x_t}$, $P={pi_1,pi_2,cdots, pi_t}$, 其中$pi_icirc x=x_i, ~ i = 1,2,cdots, t$
构造一个$G$和$Ptimes G_x$的双射:
- 对于任意$piin G$, 对于某个$x_i$有$picirc x=x_i$
- 因为$pi_icirc x=x_i$, 所以$pi_icirc x=picirc x$, 故$(pi_i^{-1}cdot pi)circ x=x$
- 记$sigma=pi_i^{-1}pi$, 则$pi_icdot sigma =pi$, $sigma circ x=x$, 即$sigma in G_x$.
- 因此每个$piin 大专栏 组合数学之Pólya计数理论G$对应一个不同的pair$(pi_i, sigma)in Ptimes G_x$
- 对于每个$pi_iin P$和$sigmain G_x$, 有$pi=pi_icdot sigmain G$
对于$pi_isigma=pi_jtau$, 有$(pi_icdot sigma)circ x=x_i$, $(pi_jcdot tau)circ x=x_j$, 所以$x_i=x_j$, $pi_i=pi_j$, $tau =sigma$
因此是双射, 得证.
2.3 轨道计数
Burnside’s Lemma: 轨道的个数(记做$|X/G|$) 为
证明:
记$A(pi, x)=begin{cases}1 & picirc x=x,\0& ~ otherwise. end{cases}$
$sum_{piin G}|X_pi|=sum_{piin G}sum_{xin X}A(pi, x)=sum_{xin X}sum_{piin G}A(pi, x)=sum_{xin X}|G_x|$.
定义轨道为$X_1,cdots, X_{|X/G|}, 则$
使用上面的引理, 有
3 Pólya’s Theory of Counting
3.1 The cycle index
对于某种上色$x$, 如果$x$在$piin G$下是不变的, 那么在$pi$的每个circle中的所有位置必须有相同颜色. 即如果$pi$被分解为$k$个circle, 那么$|X_pi|=m^k$.
定义一个置换群$G$中的cycle index:
对任意$piin G$, 如果$pi$是$k$个cycle的乘积, 且第$i$个cycle的长度为$l_i$,令
$G$的cycle index为
3.2 Pólya’s enumeration formula
对于任意tuple $v=(n_1,n_2,cdots, n_m)$满足$n_1+n_2+cdots+n_m=n$和$n_ige 0, ~ 1le ile m$, 表示第$i$个颜色的珠子有$n_i$个.
pattern inventory:
$a_v$的多元生成函数
Pólya’s enumeration formula:
非等价的$n$个物体的$m$色上色的pattern inventory为
证明思路如下:
$X^v={x:[n]to[m]|forall iin [m], x^{-1}(i)=n_i}$表示第$i$个颜色出现$n_i$的着色方案集合(所有都算, 对称的也算)
$X_pi^v={xin X^v|picirc x=x}$
先(用Burnside’s lemma)证明
再证明
考虑中间值$(y_1^{l_1}+y_2^{l_1}+cdots,y_m^{l_1})y_1^{l_2}+y_2^{l_2}+cdots,y_m^{l_2})cdots (y_1^{l_m}+y_2^{l_m}+cdots,y_m^{l_m})$, 和等式左右都相等.
合起来即证毕.
组合数学之Pólya计数理论的更多相关文章
- 组合数学(Pólya计数原理):UvaOJ 10601 Cubes
Cubes You are given 12 rods of equal length. Each of them is colored in certain color. Your task is ...
- 【等价的穿越】Burnside引理&Pólya计数法
Problem 起源: SGU 294 He's Circle 遗憾的是,被吃了. Poj有道类似的: Mission 一个长度为n(1≤n≤24)的环由0,1,2组成,求有多少本质不同的环. 实际上 ...
- 《程序设计中的组合数学》——polya计数
我们在高中的组合数学中常常会碰到有关涂色的问题,例如:用红蓝两种颜色给正方形的四个顶点涂色,会有几种不同的方案.在当时,我们下意识的认为,正方形的四个顶点是各不相同的,即正方形是固定的.而实际上我们知 ...
- Pólya计数定理
我日啊..被cls的计数题虐得欲仙欲死...根本不会计数QAQ... 不懂数学啊... 前置技能 群 群是二元组\((G,*)\),满足 \(*:(G,G)\rightarrow G\) \(\exi ...
- 组合数学起步-排列计数[ZJOI2010][BZOJ2111]
<题面> 数据范围:$1 \leq N \leq 10^6, P \leq 10^9 $ 这个题…… 以为是排列,其实是组合 题目中说是从所有排列中找到Magic的,就是 $p_{i/2} ...
- UVa 10294 (Pólya计数) Arif in Dhaka (First Love Part 2)
Burnside定理:若一个着色方案s经过置换f后不变,称s为f的不动点,将置换f的不动点的数目记作C(f).等价类的数目等于所有C(f)的平均值. 一个项链,一个手镯,区别在于一个能翻转一个不能,用 ...
- 组合数学之Polya计数 TOJ1116 Let it Bead
1116: Let it Bead Time Limit(Common/Java):1000MS/10000MS Memory Limit:65536KByteTotal Submit: 7 ...
- 组合数学--Polya 原理及典型应用
Redfield-Polya (Pólya enumeration theorem,简称PET)定理是组合数学理论中最重要的定理之一.自从 1927 年 Redfield 首次运用 group red ...
- bzoj 1004 Cards 组合计数
这道题考察的是组合计数(用Burnside,当然也可以认为是Polya的变形,毕竟Polya是Burnside推导出来的). 这一类问题的本质是计算置换群(A,P)中不动点个数!(所谓不动点,是一个二 ...
随机推荐
- 2019ICPC 上海网络赛 L. Digit sum(二维树状数组+区间求和)
https://nanti.jisuanke.com/t/41422 题目大意: 给出n和b,求1到n,各数在b进制下各位数之和的总和. 直接暴力模拟,TLE.. 没想到是要打表...还是太菜了. # ...
- 12)PHP,常量和魔术常量
义:用于存储一个不会变化也不希望变化的数据的标示符. 常量命名规则,同变量,但习惯说,常常将常量的名称使用“全大写”形式. 定义形式 使用define()函数定义 使用形式:define(“常量名”, ...
- F - Filter Gym - 100553F (bitset用法)
题目链接:http://codeforces.com/gym/100553/attachments/download/2885/20142015-acmicpc-northeastern-europe ...
- VS2010无法调试页面问题
图片: VS2010报:未能将脚本调试器附加到计算机XXX上的进程iexplore.exe . 已附加了一个调试器”.启动调试失败. 解决:1.以管理员身份打开CMD; 2.运行:regsvr32.e ...
- CodeForces 438D The Child and Sequence (线段树 暴力)
传送门 题目大意: 给你一个序列,要求在序列上维护三个操作: 1)区间求和 2)区间取模 3)单点修改 这里的操作二很讨厌,取模必须模到叶子节点上,否则跑出来肯定是错的.没有操作二就是线段树水题了. ...
- iso镜像文件的挂载和yum库的搭建
挂载镜像文件 1.上传镜像文件到服务器(或电脑)的某一目录下 如:(/media/rpm_pack/rhel...iso) 2.root 用户下创建镜像文件挂载目录 mkdir /mnt/vcd ...
- Linux基础篇四:常用命令
. 一个点表示是 当前目录 .. 两个点表示当前目录的上一层目录 . 与 .. 相对路径的一种表现形式 cd ~/test/ ~当前用户的家目录 绝对路径 注意: ...
- win下PowerShell的簡單使用
- RegexUtil
package org.linlinjava.litemall.core.util; import java.util.ArrayList; import java.util.Collections; ...
- [C#] 动态指定泛型类型
前言 今天为了程序能写好看一点,一直在纠结怎么指定动态泛型, 但是想想实用性好像不太大,可是把这技术忘掉太可惜XD 还是记录下来,以防忘记 以下程序范例 类 cs 123456789101112131 ...