Pólya定理初探
Pólya原理是组合数学中,用来计算全部互异的组合状态的个数的一个十分高效、简便的工具。
在介绍polya定理之前,先介绍几个概念
群:给定一个集合G={a,b,c,…}和集合G上的二元运算,并满足:
(a) 封闭性:"a,bÎG, $cÎG,a*b=c。
(b) 结合律:"a,b,cÎG, (a*b)*c=a*(b*c)。
(c) 单位元:$eÎG,"aÎG, a*e=e*a=a。
(d) 逆元:"aÎG,$bÎG, a*b=b*a=e,记b=a-1。
则称集合G在运算*之下是一个群,简称G是群。一般a*b简写为ab。
(a) 封闭性:"a,bÎG, $cÎG,a*b=c。
(b) 结合律:"a,b,cÎG, (a*b)*c=a*(b*c)。
(c) 单位元:$eÎG,"aÎG, a*e=e*a=a。
(d) 逆元:"aÎG,$bÎG, a*b=b*a=e,记b=a-1。
则称集合G在运算*之下是一个群,简称G是群。一般a*b简写为ab。
置换:n个元素1,2,…,n之间的一个置换 表示1被1到n中的某个数a1取代,2被1到n中的某个数a2取代,直到n被1到n中的某个数an取代,且a1,a2,…,an互不相同。
置换群:置换群的元素是置换,运算是置换的连接。
循环:记 
称为n阶循环。每个置换都可以写若干互不相交的循环的乘积,两个循环(a1a2…an)和(b1b2…bn)互不相交是指ai!=bj, i,j=1,2,…,n。例如:
称为n阶循环。每个置换都可以写若干互不相交的循环的乘积,两个循环(a1a2…an)和(b1b2…bn)互不相交是指ai!=bj, i,j=1,2,…,n。例如:
这样的表示是唯一的。置换的循环节数是上述表示中循环的个数。例如(13)(25)(4)的循环节数为3。
其实,polya定理是burnside引理的一种特殊情况。。。至于burnside引理,这就不详细探讨了。。。
下面直接给出polya定理的公式:
设G是p个对象的一个置换群,用m种颜色涂染p个对象,则不同染色方案为:
L=1/|G|(m^c(g1)+m^c(g2)+...+m^c(gs))
其中G={g1,…gs} c(gi )为置换gi的循环节数(i=1…s)
最后 提供几道关于polya定理的题:
Poj2409,poj1286,poj2154,poj2888
当然,这几道题都是裸题,至于更深入一些的。。。就需要用到burnside引理了。。。
关于上述四道题的题解,我将在随后几天陆续发布