置换群

群的概念

给定集合 G G G G 上的二元运算“ · ”,如满足下列条件,称集合 G G (在运算“ · ” 之下)为一个群。
(a) 封闭性:若 a,bG a , b ∈ G ,则存在 cG c ∈ G ,使得 ab=c a · b = c
(b) 结合律:任意 a,b,cG a , b , c ∈ G ,有 (ab)c=a(bc) ( a · b ) · c = a · ( b · c )
(c) 有单位元:存在 eG e ∈ G ,任意 aG a ∈ G ,有 ae=ea=a a · e = e · a = a
(d) 有逆元:任意 aG a ∈ G ,存在 bG b ∈ G , ab=ba=e a · b = b · a = e b=a1 b = a − 1

置换群

[1,n]到自身的1-1变换,称为置换。[1,n]为目标集,称为n阶置换.

(1a12a2......nan) ( 1 2 . . . n a 1 a 2 . . . a n )

a1a2…an是[1,n]中元的一个排列。

置换乘法

举个栗子:
p1=(13213244),p2=(14233241). p 1 = ( 1 2 3 4 3 1 2 4 ) , p 2 = ( 1 2 3 4 4 3 2 1 ) .
1p13p22,2p11p24,3p12p23,4p14p21. 1 → p 1 3 → p 2 2 , 2 → p 1 1 → p 2 4 , 3 → p 1 2 → p 2 3 , 4 → p 1 4 → p 2 1.
p1p2=(12243341) ∴ p 1 p 2 = ( 1 2 3 4 2 4 3 1 )
同理,有 p2p1=(14223143) p 2 p 1 = ( 1 2 3 4 4 2 1 3 )
所以一般情况下不满足交换律。

[1,n]上的所有n阶置换在上面的乘法定义下是一个群,称之为对称群,记做Sn 。

循环

(a1a2...am)=(a1a2a2a3......ama1) ( a 1 a 2 . . . a m ) = ( a 1 a 2 . . . a m a 2 a 3 . . . a 1 ) 称为置换的循环表示。.
任一置换可表成若干不相交循环的乘积。


这里有一些与置换和循环有关的题目(由于某些原因,大多数代码都咕了)。
poj2369:给出一个1-n的排列p,每次令 pk[n]=p[pk1[n]] p k [ n ] = p [ p k − 1 [ n ] ] ,求最小的k使 pk p k 为升序。
一句话题解:这显然是个置换,那么求出每个循环节的长度,求一下lcm即可。

poj1026:给出一个长度为n的字符串(如果不够用空格补,而且读入时有空格(据说不止一个就不能scanf了)),每次置换将一个位置上的字符置换到某一个给定的位置,求k次后字符串是什么样子。
一句话题解:这道题直接暴力搞应该不太现实,所以可以考虑对每个循环做k%(循环节)次。

poj1721:把一堆牌放到一个机器里面,如果在第i个位置上的牌为j,在第j个位置上的牌为k,那么一次操作后第i个位置上的牌会变成k.已知s次操作后牌的序列,求最初的序列。
一句话题解:假设循环节为r,那么最初的序列就是已知序列再操作r-s%r次的结果。反正操作n次是可以跑过的。

uva12103:给出26个大写字母的置换B,问是否存在一个置换A,使得A^2 = B。
一句话题解:假设循环长度为n,因为n为奇数时,循环的平方仍是一个长度为n的循环,但n为偶数时,循环的平方变为了两个n/2长度的循环(证明咕了)。所以当长度为偶数的循环个数也为偶数时存在,否则不存在。

uva1156:给出一些变换,问需要重复几次才能回复原图像。
一句话题解:就是个裸题,只是实现起来比较恶心。

uva11330:Andy把他的鞋放成一排,左右交替,但并不一定配好对。他爹(?)想用最少的步数使鞋子配对。这里一步是交换两只鞋子。
一句话题解:我们可以固定一下左边的鞋子,交换右边的鞋子,那么就有置换了。因为我们知道:(1 2 … n)=(1 2)(1 3)…(1 n),所以将所有(循环长度-1)求和即为答案。

codeforces612e:给出一个置换B,求使得A^2=B的置换A。看着和上面某一道题谜之相似是吧(o°ω°o)
一句话题解:大部分内容都在上文说过了,所以长度为奇数的循环逆推过去,长度为偶数的循环两两组合即可。

poj3590:求一个n元置换p,使当p^k=e时,k最大。
一句话题解:就是要让所有循环长度的lcm最大。然后用dp做。
由于我没做过对状态转移不了解所以就放别人的题解好了

再给一道和循环有关但不是用循环做的题:Codeforces1012E.
这里是某YHNdalao的题意和题解


burnside引理

Burnside引理:设 G=a1,a2,,ag G = a 1 , a 2 , … , a g 是目标集[1,n]上的置换群,每个置换都写成不相交循环的乘积。G将[1,n]换分成l个等价类。 c1(ak) c 1 ( a k ) 是在置换ak的作用下不动点的个数,也就是长度为1的循环的个数。则不同等价类的个数 l=[c1(a1)+c1(a2)++c1(ag)]/|G| l = [ c 1 ( a 1 ) + c 1 ( a 2 ) + … + c 1 ( a g ) ] / | G |


举个栗子:
有一个长度为3的环,每个点填上”X”或”E”,旋转后相同的算一种方案,求方案数。
这里写图片描述
不考虑旋转,显然有 23=8 2 3 = 8 种方案。
不旋转,那么p1=(1)(2)(3)(4)(5)(6)(7)(8);
顺时针旋转一次,那么p2=(1)(2 4 3)(5 6 7)(8);
顺时针旋转两次,那么p3=(1)(2 3 4)(5 7 6)(8)。
所以不同等价类的个数: 13×(8+2+2)=4 1 3 × ( 8 + 2 + 2 ) = 4 .


Pólya定理

Pólya定理 :设 G¯¯¯¯={a¯¯¯1,a¯¯¯2,...,a¯¯¯g} G ¯ = { a ¯ 1 , a ¯ 2 , . . . , a ¯ g } 是目标集[1,n]上的置换群,每个置换都写成不相交循环的乘积, c(a¯¯¯k) c ( a ¯ k ) 是置换 a¯¯¯k a ¯ k 的循环的节数,用m种颜色对[1,n]中的元素着色,则不同着色方案数为 l=1|G¯¯¯¯|[mc(a¯¯¯1)+mc(a¯¯¯2)+...+mc(a¯¯¯g)] l = 1 | G ¯ | [ m c ( a ¯ 1 ) + m c ( a ¯ 2 ) + . . . + m c ( a ¯ g ) ] .

那么还是上面那个例子,就可以这么算:
我们假设从左到右分别为2、1、3.
那么置换群为:
p1=(1)(2)(3),p2=(1 2 3),p3=(1 3 2).
所以不同等价类的个数: 13(23+21+21)=4 1 3 ( 2 3 + 2 1 + 2 1 ) = 4 .

(算了算了我先鸽着后面的…看这份吧以后再填)

你可能感兴趣的:(一些(玄学的)知识,数学)