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。
置換: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。例如:
這樣的表示是唯一的。置換的循環節數是上述表示中循環的個數。例如(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引理了。。。
關於上述四道題的題解,我將在隨後幾天陸續發佈