ACM中的【數學知識】之【組合數學】(一) Polya定理的簡單理解 POJ 1286
因為數學渣,Polya定理不是很清楚,但其實際操作大概如下。
解釋下上圖。
N個位置,K種顏色放置。
x1,x2,x3,x4,……,xn
(x1,x2,x3……xn)∈{1 2 3 4 …… K}
則
放置總數為上圖
|G| 是【所有的(被定義的)置換(也就是變化的方式)】的個數
——被定義就是說,某變化為M,任意情況A經過變化M變為B,A和B算作同一種情況。
k就是K
c(f) 是【某種置換的迴圈節】:
——這是什麼意思的
比如說
3種顏色(K==3)
1 2 3 4 四個位置
我定義【旋轉變化】和【不變】是同一種情況(注意,不變也算是一種【變化】,因為不變之後等效於原來)
【不變】就是 【1 to 1】【2 to 2】【3 to 3】【4 to 4】有四個【】,所以c(f)算作4
【旋轉】分為幾種分別是
【轉一次】——【1 to 2】【2 to 3】【3 to 4】【4 to 1】這個【】可以合併為【 1 to 2 to 3 to 4 to 1】 所以 從c(f)=1;
【轉兩次】——【1 to 3】【2 to 4】【3 to 1】【4 to 2】這個【】可以合併為【 1 to 3 to 1】【2 to 4 to 2】 所以 從c(f)=2;
【轉三次】——【1 to 4】【2 to 1】【3 to 2】【4 to 3】這個【】可以合併為【 1 to 4 to 3 to 2 to 1】 所以 從c(f)=1;
PS:如果把【不變】不單獨算,而是算作【轉四次】的話
【轉四次】——【1 to 1】【2 to 2】【3 to 3】【4 to 4】這個【】不能合併 所以 從c(f)=4;
所以總可能數
就是
K^(1+2+1+4)/4==24
POJ 1286
除去上面的【旋轉】和【不變】
再多一個【翻轉】操作
對於n個數
n 為奇數
共 n 種翻轉,每種 的 c(f)==(n+1)/2
n為偶數
n/2 種 c(f)==n/2
n/2 種 c(f)==n/2+1
具體程式碼可自行度娘