群論學習筆記

liuchanglc發表於2021-02-26

群的定義

給定一個集合 \(G=\{a,b,c\cdots\}\) 和集合上的二元運算 "\(*\)",如果滿足以下條件:

(1)封閉性。對於任意的 \(a,b \in G,a*b\in G\) 成立。

(2)結合律。對於任意 \(a,b,c \in G,a*(b*c)=(a*b)*c\) 成立。

(3)存在單位元\(G\) 中存在一個元素 \(e\),使得對於 \(G\) 中任意元素 \(a\) ,都有 \(a*e=e*a=a\),元素 \(e\) 為單位元素。

(4)存在逆元。對於 \(G\) 中任意元素 \(a\),恆有一個 \(b \in G\) ,使得 \(a*b=b*a=e\),則元素 \(b\) 為元素 \(a\) 的逆元,記作 \(a^{-1}\)

則稱集合 \(G\) 是運算 "\(*\)" 下的一個群

置換群

置換,就是給我們一個 \(n\) 個數的排列 $1 , 2 ,\cdots n $ ,我們通過置換得到 \(1 \sim n\) 的對映 \(p_1,p_2,p_3\cdots p_n\)

它們一一對應:\(\binom{1\ 2\ 3\ ...n}{p_{1}\ p_{2} \ p_{3} ...p_{n}}\)

置換實際上就表示為元素位置的變化

集合 \(S\)上的所有置換關於置換的乘法滿足封閉性、結合律、有單位元(恆等置換,即每個元素對映成它自己)、有逆元(交換置換表示中的上下兩行),因此構成一個群

這個群的任意一個子群即稱為置換群

有一種特殊的置換叫做迴圈置換

\(m\) 階迴圈記為 \(\binom{a_{1}\ a_{2} ...\ a_{m-1} \ a_{m}}{a_{2}\ a_{3} ...\ a_{m} \ a_{1}}\)

特別的,當 \(m=2\) 時,\(2\) 階迴圈 \((i,j)\) 叫做 \(i\)\(j\) 的對換或換位

Burnside引理

定義 \(G\) 為一個置換群,定義其作用於 \(X\),如果 \(x,y\in X\)\(G\)作用下可以相等即存在 \(f\in G\) 使得 \(f(x)=y\) 則定義 \(x,y\) 屬於一個等價類,則不同的等價類的數量為:

\(|X/G|=\dfrac{1}{|G|}\sum_{g\in G} X^g\)

其中, \(X^g\)\(X\)\(g\) 作用下的不動點的數量,即滿足 \(g(x)=x\)

簡單來說,就是每個置換的不動點的個數的平均值就是不同的方案數

舉一個例子

如圖所示,\(2×2\) 方格中每個格子可以選擇染上\(2\) 種顏色(紅色或白色),那麼總共是 \(2^4=16\) 種情況

現在要問,如不旋轉、順時針旋轉 \(90\) 度、逆時針旋轉 \(90\) 度、旋轉 \(180\) 度後相同的均算成同一種方案,問總共有多少種不同的方案

可以把四種操作分別看成四種置換

分別統計這四種置換下不動點的個數

\(1\)、不旋轉,所有的元素均為不動點,一共有 \(16\)

\(2\)、順時針旋轉 \(90\) 度,不動點有 \(1,2\)

\(3\)、逆時針旋轉 \(90\) 度,不動點有 \(1,2\)

\(4\)、旋轉 \(180\) 度,不動點有 \(1,2,11,12\)

答案為 \(\frac{16+2+2+4}{4}=6\)

Polya 定理

對於每一種置換,我們一定可以把它表示為迴圈的形式

定義迴圈的迴圈節為迴圈的個數

\(k\) 為顏色種類,\(m(f)\) 為置換 \(f\) 的迴圈節

在置換群中,等價類個數(方案數)等於所有置換 \(f\)\(k^{m(f)}\) 的平均數,即

\(\dfrac{1}{|G|}\sum_{g\in G}m^{c(g)}\)

對於每一個迴圈,如果想讓這個迴圈中有不動點,那麼這個迴圈中所有元素的顏色應該是相同的

而不同的迴圈之間是沒有影響的,所以一個迴圈的答案就是 \(m^{c(g)}\)

同樣是上面的例子

\(1、\)不旋轉,\(f_1 = \binom{1234}{1234} = (1)(2)(3)(4), C(f) = k ^ {m(f)} = 2 ^ 4 = 16\)

\(2\)、順時針旋轉 \(90\) 度,\(f_2 = \binom{1234}{2341} = (1,2,3,4), C(f) = k ^ {m(f)} = 2 ^ 1 = 2\)

\(3\)、逆時針旋轉 \(90\) 度,\(f_1 = \binom{1234}{4123} = (1,2,3,4), C(f) = k ^ {m(f)} = 2 ^ 1 = 2\)

\(4\)、旋轉 \(180\) 度,\(f_1 = \binom{1234}{3412} = (1,3)(2,4), C(f) = k ^ {m(f)} = 2 ^ 2 = 4\)

答案為 \(\frac{16+2+2+4}{4}=6\)

例題

P4980 【模板】Pólya 定理

題目傳送門

這道題中一共有 \(n\) 種不同的置換,分別是整體平移 \(1 \sim n\) 個單位

假設平移了 \(i\) 個單位,那麼要平移 \(lcm(i,n)\) 步才能回到起點

那麼迴圈節為 \(\frac{in}{lcm(i,n)}=gcd(i,n)\)

就可以直接套用 \(polya\) 定理

\(ans=\frac{1}{n}\sum\limits_{i=1}^n n^{gcd(i,n)}\)

進行一下莫比烏斯反演,答案就為 \(\sum\limits_{d|n}n^d\varphi(n/d)\)

P1446 [HNOI2008]Cards

題目傳送門

因為有使用顏色的限制所以不能直接套用 \(polya\) 引理

而要列舉每一種置換下不動點的個數

因為題目中的洗牌法並不存在單位元,所以強制加入一種所有牌都不變的洗牌法

對於每一個迴圈,他們內部的位置的染色必須是相同的

所以單獨考慮每個迴圈染哪種顏色,可以通過一個類似揹包的過程實現

週末晚會

Irena和Sirup正準備下個週末的Party。為這個Party,他們剛剛買了一個非常大的圓桌。他們想邀請每個人,但他們現在不知道如何分配座次。Irena說當有超過K個女孩座位相鄰(即這些女孩的座位是連續的,中間沒有男孩)的話,她們就會說一整晚的話而不和其他人聊天。 Sirup沒有其他選擇,只有同意她。然而,作為一名數學家,他很快地痴迷於所有可能方案。 題目說明: N個人圍繞著圓桌坐著,其中一些是男孩,另一些是女孩。你的任務是找出所有合法的方案數,使得不超過K個女孩座位是連續的。 迴圈同構會被認為是同一種方案。對於100%的資料N,K < = 2000;mod 100000007

可以把迴圈看成 \(n\) 種置換

那麼要統計的就是每一種置換下不動點個數的平均數

如果 \(n \leq k\) ,那麼就沒有任何限制,可以直接套一個 \(polya\) 引理

否則,就要用 \(dp\) 去統計方案

\(f[i]\) 為序列的首尾都放男孩,並且不超過 \(k\) 個女孩的座位是連續的方案數

轉移也很簡單, \(f[i]=\sum_{j=i-k-1}^{i-1}f[j]\)

統計答案的時候要從 \(1\)\(n\) 列舉每一種置換 \(i\),那麼迴圈節就是 \(gcd(i,n)\)

通過旋轉這個迴圈節可以得到其它迴圈節

這些迴圈節是完全相同的,所以只需要統計一個迴圈節的答案即可

那麼貢獻就是 \(\sum_{j=gcd(i,n)-k}^{gcd(i,n)} f[j] \times (gcd(i,n)-j+1)\)

後面乘上的部分是因為我強制了第一個選男生,但實際上第一個位置是可以選女生的

我可以把後面的每一個女生都旋轉到前面來

P4128 [SHOI2006] 有色圖

題目傳送門

圖的同構問題

\(Polya\) 定理是用來解決點置換的,但是這道題要求的是邊置換

那麼就考慮邊的兩個端點分別在哪個迴圈中

分為兩類:

\(1\)、邊的兩個端點在同一迴圈中

設迴圈的長度為 \(b\)

如果端點之間的間距不同,那麼兩條邊一定不在一個等價類中

又因為是在迴圈中,所以間距 \(x\) 也可以看成間距 \(b-x\)

那麼等價類的個數就是 \(\left\lfloor\frac{b}{2}\right\rfloor\)

\(2\)、邊的兩個端點在不同迴圈中

設這兩個迴圈的長度分別為 \(b_1,b_2\)

每一個邊的迴圈的大小都是 \(lcm(b_1,b_2)\)

那麼邊的等價類的個數就是 \(\frac{b_1b_2}{lcm(b_1,b_2)}=gcd(b_1,b_2)\)

設點的迴圈的長度為 \(b_1,b_2,b_2 \cdots b_k\)

那麼最終的答案就是

\[\Large \frac{1}{|G|} \sum\limits_b m^{\sum\limits_{i=1}^k\left\lfloor\frac{b_i}{2}\right\rfloor+\sum\limits_{i=1}^k\sum\limits_{j=i+1}^k gcd(b_i,b_j)} \]

現在的問題就是如何列舉 \(b\)

因為 \(n\) 的範圍比較小,所以可以考慮 \(dfs\) 從大到小加數

對於每一個列舉出來的 \(b\) ,我們還要知道具體有多少置換是這樣的

首先對於所有的點進行全排列,就是一個 \(n!\)

又因為每一個迴圈內部都是迴圈同構的,所以要除掉 \(b_i\)

而且我們強行給長度相同的迴圈規定了順序

所以對於長度為 \(i\) 的迴圈,如果它出現了 \(s_i\) 次,還要給最後的結果除掉 \(s_i!\)

要除以的是給指數取模的時候要模 \(phi\) ,而不能模 \(mod\)

相關文章