组合数学之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)中不动点个数!(所谓不动点,是一个二 ...
随机推荐
- matlab代码学习_2018-7-28
1.核范数||A|| * 是指矩阵奇异值的和,英文称呼叫Nuclear Norm.matlab code:[s, u, v] = svd(A); nulear_norm = sum(diag(s)); ...
- Matlab:fsolve No solution found.
代码: clear M = 600;N = 420;p=200;q=2282; eq = @(x) x^M-(1+q/p)*x^(M-N)+q/p; options = optimset('MaxFu ...
- idea高效插件
RestfulToolkit:url定位controller,快捷键:ctrl+\Maven Helper:依赖分析JRebel:热部署Rainbow Brackets:个性化花括号aiXcode:a ...
- C# 类的解构
C#对类的解构,必须在该类内实现Deconstruct方法,并且返回类型为void ,并用out参数返回各个部分. using System; using System.Text; namespace ...
- 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇四:配置Robbin负载均衡)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...
- mysql数据库死锁的解决方案
1. 查询锁表信息 show OPEN TABLES where In_use > 0;2. 查看当前数据库锁表的情况 SELECT * FROM information_schem ...
- Codeforces Round #556(Div.1)
A 容易发现i,i+1至少有一个数出现,于是可以让尽量多的2和奇数出现 #include<bits/stdc++.h> using namespace std; int n,s1,s2; ...
- P2448 无尽的生命(树状数组+离散化)
题目描述 逝者如斯夫,不舍昼夜! 叶良辰认为,他的寿命是无限长的,而且每天都会进步. 叶良辰的生命的第一天,他有1点能力值.第二天,有2点.第n天,就有n点.也就是S[i]=i 但是调皮的小A使用时光 ...
- php通过身份证判断性别
/** 已测试,百度很多写法不行的 * 1就是男性 2就是女性* 通过身份证获取性别类型* @param type $card* @return int*/function getCardSex($i ...
- HTML5 Fundamental Syntax
HTML5 Fundamental Syntax */--> HTML5 Fundamental Syntax 1 Adding Document Structure with HTML5's ...