[群论] 置换群快速整数幂

引言: 这几天遇到了几个有关群论的题

1.牛客第二场多校训练里的J.Just Shuffle
2.ICPC NEAU Programming Contest 2020里的E.随便置换
3. 以及以前遇到的Permutations POJ - 2369
考虑到相同类型的题出现频率比较多,于是花了两天时间才摸索出点眉目。

定义:

群:设G为一个元素的集合,称G内的元素为元,*为针对G这个集合的元素的运算,当<G,∗>满足封闭性、结合律、有单位元、有逆元要求的时候,我们称<G,∗>为群。
在此提一下群的乘积。
假如: a = ( 1 2 3 n a 1 a 2 a 3 a n ) { a=\begin{pmatrix} 1 & 2 & 3 & \cdots & n \\ a_{1} & a_{2} & a_{3} & \cdots & a_{n} \\ \end{pmatrix} } b = ( a 1 a 2 a 3 a n b 1 b 2 b 3 b n ) { b=\begin{pmatrix} a_{1} & a_{2} & a_{3} & \cdots & a_{n} \\ b_{1} & b_{2} & b_{3} & \cdots & b_{n} \\ \end{pmatrix}}

a b = ( 1 2 3 n b 1 b 2 b 3 b n ) {a*b=\begin{pmatrix} 1 & 2 & 3 & \cdots & n \\ b_{1} & b_{2} & b_{3} & \cdots & b_{n} \\ \end{pmatrix}}

在此易知:c = a * b表示 c i = b a i {c_i=b_{a_i}}

封闭性:G内的任何两个元的*运算的结果仍在G内
交换律:a∗(b∗c) = (a∗b)∗c
单位元:任何a∗e=a
逆元: a a 1 = e a 1 a {a∗a^{-1}=e},a^{-1}称为a的逆元

置换:有限集合到自身的一一映射称为一个置换。
置换群是由置换组成的群。即n元集合Ω到它自身的一个一一映射,称为Ω上的一个n元置换或n阶置换。Ω上的置换 可表为

σ = ( a 1 a 2 a 3 a n a i 1 a i 2 a i 3 a i n ) { {\sigma}=\begin{pmatrix} a_1 & a_2 & a_3 & \cdots & a_n \\ a_{i_1} & a_{i_2} & a_{i_3} & \cdots & a_{i_n} \\ \end{pmatrix} }

简记为

σ = ( a k a i k ) { {\sigma}=\begin{pmatrix} a_k \\ a_{i_k}\\ \end{pmatrix} }
其中 i 1 , i 2 , i 3 i n {i_1,i_2,i_3\cdots i_n} 1 , 2 , 3 n {1,2,3\cdots n} 的一个排列, a i k {a_{i_k}} a k {a_k} 在置换 σ {\sigma} 下的像。由全排列知识可知,这样的置换共有 n! 个。

置换群的一些结论

首先摘录出置换群快速幂学习公认的鼻祖——置换群快速幂运算—潘震皓

05年一个高中生写的,总结到位,逻辑清晰,让我自愧不如。保送清华无可厚非。

这篇论文里有许多证明,在此我不赘述,我只总结一下里面部分重要结论。

1.设 T k = e {T^k = e} ,(T为一置换,e为单位置换),那么k的最小正整数解是T的拆分的所有循环长度的最小公倍数。
2.一个长度为L的循环T, T k {T^k} 是gcd(k,L)个循环的乘积,每个循环分别是循环T中下标 i % gcd(l,k)=0,1,2…的元素连接。
3. 循环长度与指数互质时的整幂运算:设a = T,a’= T k {T^k} ,且gcd(L,k)=1
则 a’[ i ]=a[(k+1)*i%L] (下标范围0≤i≤l-1)

对于第三个结论特别提一下推理过程:

以 L=10,k=3 为例子
说明过程
说明过程 在这里插入图片描述
由上图可知如果已知T,那么 T k {T^k} 就是先在T中确定一点,然后不断前进k格得出答案。

猜你喜欢

转载自blog.csdn.net/weixin_44235989/article/details/107424996