等價類計數問題(Polya定理和burnside引理)

零.約定:

(置換等名詞會在前置知識中有解釋)ide

\(1.\)在本文中,題目要求的染色方案等統稱爲「元素」。優化

\(2.\)兩個元素嚴格相等咱們記作「\(=\)」,兩個元素等價(按題目所給的置換能夠互相獲得)咱們記作「\(\Leftrightarrow\)」。spa

\(3.\)元素\(a\)進行置換\(g\)咱們記作\(a\otimes g\)對象

\(4.\)置換之間的乘積記作\(\odot\)\(g_i=g_j\odot g_k\),當且僅當\(\forall a,a\otimes g_i=a\otimes g_j\otimes g_k\),將\(g_j\odot g_k\)代入\(g_i\)\(a\otimes(g_j\odot g_k)=a\otimes g_j\otimes g_k\)get

一.前置知識:

\(1.\)置換:

以下圖所示,這是一個置換,一個置換隻與兩行之間的對應關係有關,與列的順序無關。
\[\left(\begin{matrix}1&2&3&4\\2&3&1&4\end{matrix}\right)=\left(\begin{matrix}1&4&3&2\\2&4&1&3\end{matrix}\right)\]
咱們的一個元素\(\left(\begin{matrix}3&2&4&1\end{matrix}\right)\)在通過這個置換後就變成了\(\left(\begin{matrix}4&3&2&1\end{matrix}\right)\)。列\({^a_b}\)表示原來第\(a\)位的元素置換後到了第\(b\)位。it

\(2.\)循環:

形式以下的置換叫作一個\(n\)階循環(任意一個\(n\)階循環能夠記作\(r_n\)):
\[\left(\begin{matrix}a_1&a_2&a_3&\cdots&a_n\\a_2&a_3&a_4&\cdots&a_1\end{matrix}\right)\]class

\(3.\)置換的分解:

指把置換\(g\)分解成\(r_1^{k_{1}}r_2^{k_{2}}\cdots r_n^{k_{n}}\)的形式(\(r_j^{k_{j}}\)表示\(j\)階循環一共有\(k_{j}\)個(同階循環能夠不相同)),各個循環之間的元素互不相交。感性理解一下就是,對於列\(^a_b\),從\(a\)\(b\)連一條有向邊,這樣會造成一個個環,一個長度爲\(i\)的環對應着一個\(r_i\)。令\(w(g)=\sum_{i=1}^n k_i\),即循環總個數。擴展

\(4.\)不動點:

若是元素\(a\otimes g_i = a\),那麼咱們稱\(a\)爲置換\(g_i\)的不動點,\(g_i\)的不動點個數用\(\chi(g_i)\)表示。循環

\(5.\)羣:

羣用\((G,\oplus)\)表示,其中\(G\)是一個集合,\(\oplus\)是定義在\(G\)上的一個二元運算,而且知足:gc

封閉性(\(\forall a,b \in G,a\oplus b \in G\))

結合律(\(a\oplus(b\oplus c)=(a\oplus b)\oplus c\))

存在單位元(\(\exists e,\forall a,e\oplus a = a\oplus e = a\))

存在逆元(\(\forall a,\exists a^{-1},a\oplus a^{-1} = a^{-1}\oplus a = e\))

那麼這是一個羣。

\(6.\)置換羣:

置換羣就是將置換做爲元素的羣。

證實:

封閉性:置換的乘積也是置換,在這個羣中。

結合律:手模小樣例可知,\(a\odot b\odot c=a\odot(b\odot c)\)

單位元:
\[\left(\begin{matrix}1&2&3&\cdots&n\\1&2&3&\cdots&n\end{matrix}\right)\]

逆元:將置換的兩行交換位置即是逆元。

\(7.\)等價類:

若是\(\exists g,s.t.~a\otimes g = b\)那麼咱們稱\(a\Leftrightarrow b\),全部互相等價的元素組成一個等價類,元素\(a\)所屬的等價類記作\(E_a\)答案\(L\)即是等價類的種類。

\(8.\)不動置換類:

置換羣\(G\)中,使元素\(a\)不變的置換全體,稱爲\(a\)的不動置換類,記作\(Z_a(\forall g \in Z_a,a\otimes g=a\&\&\forall g\notin Z_a,a\otimes g\ne a)\)

二.\(Burnside\)引理:

內容:

等價類個數
\[L = \frac {\sum_{g\in G} \chi(g_j)}{|G|}\]

證實:

\(step~1:\)首先看兩個定理:

\(1.\)

彷彿沒什麼用的定理:\(|Z_k|\)\(G\)的一個子羣。

證實:

封閉性:使\(k\)不動的兩個置換的積也使\(k\)不動,屬於這個羣。

結合律:顯然

存在單位元:顯然任何元素都\(G\)單位元的不動點。

存在逆元:置換\(g\)屬於元素\(a\)的不動置換類,當且僅當\(g\)的每一列\(^x_y\)\(a_x=a_y\)。顯然\(g\)的逆元也知足這個條件,也在不動置換類中。

\(2.\)

重要定理:\(\forall a,|E_a||Z_a|=|G|\)

證實:

若是對於\(\forall b\in E_a\)都有剛好\(|Z_a|\)個不一樣置換使\(a\)轉化成\(b\),那麼定理得證(由於\(a\)進行一種置換有且僅有一個結果)。

首先,由於\(b\in E_a\)必定存在一個置換\(p\)使得\(a\otimes p = b\)。由於\(Z_a\)\(a\)的不動置換類,因此

\(\forall z\in Z_a\)

\(\because a\otimes z=a,a\otimes p = b\)

\(\therefore a\otimes z\otimes p = b\)

\(\therefore a\otimes(z\odot p)=b\)

\(z\)互不相同,因此\(z\odot p\)互不相同,\(z\)\(|Z_a|\)種取值,因此有至少\(|Z_a|\)種置換,使\(a\)轉化成\(b\)。如今咱們只要能證實\(z\odot p\)可以取遍全部使\(a\)轉化成\(b\)的置換便可。

咱們考慮反證法:

同上,由於\(b\in E_a\)必定存在一個置換\(p\)使得\(a\otimes p = b\)

假設存在一個置換\(q\)\(a\otimes q = b\),且\(\forall z\in Z_a,z\odot p\neq q\)

顯然\(\exists c=q\odot p^{-1}\in G,s.t.~c\odot p = q\)

\(\because a\otimes q =b,c\odot p = q\)

\(\therefore a\otimes(c\odot p)=b\)

\(\therefore a\otimes c\otimes p=b\)

\(\because a\otimes p =b\)

\(\therefore a\otimes c = a\)

\(\therefore c\in Z_a,\)與假設\(\forall z\in Z_a,z\odot p\neq q\)相悖,因此不成立。

證畢。

\(step~2:\)

\(U\)爲一個等價類集合,共\(L\)個等價類。

\(n\)是元素總數。

\(\because \forall a,|E_a||Z_a|=|G|\)

\(\therefore |Z_a|=\frac{|G|}{|E_a|}\)

\(\therefore \sum_{i=1}^n|Z_i|=|G|\sum_{i=1}^n\frac{1}{|E_i|}\)

由於每一個\(E_i\)大小爲\(|E_i|\),貢獻\(\frac{1}{|E_i|}\),會被算\(|E_i|\)次,因此每一種等價類的總貢獻\(1\)\(\sum_{i=1}^{n}\frac{1}{|E_i|}=\)等價類的種類即答案\(L\)

\(\therefore \sum_{i=1}^n|Z_i|=|G|L\)

\(\therefore L=\frac{\sum_{i=1}^n|Z_i|}{|G|}\)

不動點和不動置換的關係是相互的,全部置換的不動點之和等於全部元素的不動置換之和。

\(\therefore L=\frac{\sum_{g\in G}\chi(g)}{|G|}\)

證畢。

三.\(Polya\)定理:

內容:

若題目是對\(n\)個對象染\(m\)種顏色,則
\[\chi(g)=m^{w(g)}\]
\[L=\frac{\sum_{g\in G}m^{w(g)}}{|G|}\]

證實:

\(a\)\(g\)的不動點,對於每一列\(^x_y\),都有\(a_x=a_y\),而一個循環是許多列首尾相接,因此他們都相等。因此對於\(g\)的一個循環\(r\)\(\forall i,j\in r,a_i =a_j\),因此\(\chi(g)\)就至關於給\(g\)每一個循環染色的方案數(每一個循環染相同的顏色)。因此\(\chi(g)=m^{w(g)}\)

證畢。

擴展:

這個式子是基於能夠給\(g\)每一個循環任意染色這個前提的,若是染色數量有限制,咱們就須要求給\(g\)每一個循環染色的方案數,一般用\(dp\)來擴展此問題。

四.應用與例題:

常見置換的循環個數:

\(1.\)(套路\(1\))將長度爲\(n\)序列(或者環)循環移\(k\)位,循環個數爲\(\gcd(n,k)\)

\(2.\)(套路\(2\))將長度爲\(n\)環沿對稱軸反轉,若\(n\)是奇數則\(n\)條對稱軸的循環個數都是\(\lceil\frac n 2\rceil\);不然,有\(\frac n 2\)對稱軸的循環個數是\(\frac n 2\),另一半對稱軸個數是\(\frac n {2}+1\)

例題:

\(1.\)luogu 1446

\(a.\)題目大意:

\(n\)張撲克牌,染三種顏色,每種顏色規定數目。再給定\(m\)中洗牌方法,經過洗牌能夠互相獲得的方案等價,求有多少種不一樣方案。

\(b.\)題目分析:

在本題中,洗牌方法就是置換,而染色方案是「元素」。

本題給了 「輸入數據保證任意屢次洗牌均可用這\(m\)種洗牌法中的一種代替,且對每種洗牌法,都存在一種洗牌法使得能回到原狀態」 的條件,使知足封閉性和存在逆元。至於單位元,咱們須要人爲添加一種置換(本身到本身),來使之知足條件,因爲單位元\(a\otimes e = a\)的性質,不會對答案產生影響,但咱們必須添加使之可使用\(Burnside\)引理。

\(c.\)具體作法:此處染色有數目限制,不能直接使用\(Polya\)定理。咱們首先\(\Theta(n)\)求出每一種洗牌方案的循環個數。而後咱們對於每一種洗牌方案,經過\(dp\)求染色方案,具體的說,\(f[i][a][b][c]\)表示前\(i\)個循環已經染完色,三種顏色分別剩\(a,b,c\)
,初始狀態\(f[0][Sum_a][Sum_b][Sum_c]\)答案是\(f[w][0][0][0]\)

總複雜度\(\Theta(nmSum_aSum_bSum_c)\),可過。

\(2.\)luogu 4980

\(a.\)題目大意:本身看吧

\(b.\)題目分析:直接套公式,置換爲\(n\)種循環移位 ,直接套用套路\(1\),循環個數爲\(\gcd(n,k)\)的性質來優化。
\[ans = \frac 1 {|G|}{\sum_{i = 0} ^ {n-1}m^{\gcd(n,i)}}\]
咱們優化一下:

\[\sum_{i=0}^{n-1}m^{\gcd(n,i)}=\sum_{t|n}\sum_{i=1}^{\frac n t}I[\gcd(it,n)==t]\times m^t=\sum_{t|n}\sum_{i=1}^{\frac n t}I[\gcd(i,\frac n t)==1]\times m^t=\sum_{t|n}\varphi(\frac n t)m^t\]

咱們只須要枚舉\(t\)\(\sqrt{n}\)就能夠了,而後再\(\sqrt{n}\)\(\varphi\),複雜的\(\Theta(Tn^{\frac 3 4})\)您也能夠大力Pollad-rho一發

\(3.\)UVA11255

大水題限制染色次數+能夠翻轉旋轉,直接套用套路\(1\)\(2\)便可。

\(4.\)UVA10601

\(a.\)題目大意:一個正方體,給棱染色,有數量限制,旋轉同構。

\(b.\)題目分析:

咱們本題置換種類繁多:橫向旋轉(面向本身的面不變),豎向旋轉(面向本身的面發生改變),以及兩種旋轉的組合。

可是咱們發現有一些旋轉的組合結果是相同的,咱們考慮枚舉結果,即選定面向本身的正方形的下底邊爲基準,枚舉原來哪一個位置的邊轉到了這個位置,共十二種置換,而後統計每一個置換的循環個數(暴枚或者手模均可以),再根據數量限制擴展一下定理便可。

五.總結:

全是廢話

\(Polya\)定理實質上是\(Burnside\)引理的一個擴展,雖然式子簡單,可是可以解決的問題卻頗有限。咱們一般經過\(dp\),組合數等來求不動點個數\(\chi(g)\),這既能夠說是\(Polya\)定理的擴展也能夠說是\(Burnside\)引理的擴展。

相關文章
相關標籤/搜索