【证明】关于项链问题中旋转操作的置换群的循环节个数、长度的证明【Pólya】【同余】

做POJ2154时,对于”置换的循环节的个数为gcd(i, n)"表示疑惑,但是看了很多blog,发现都没有证明这个结论,于是这里做个简单的证明。


设一开始珠子的位置在p点,每次旋转x格。

先证明循环节长度为n / gcd(x, n)。

假设这个珠子走了k次回到p点,那么有


减去p,有



说明了kx是n的倍数,即


又显然有kx是x的倍数


我们发现kx既是n的倍数,又是x的倍数。但是我们求的是循环节长度,即k需要最小,又因为x是常量,那么我们当然取n和x的最小公倍数了


代换一下lcm


消去x,得到k


Q.E.D.


现证明循环节个数是gcd(x, n)

因为循环节的长度为n / gcd(x, n),又一共有n个元素,且这n个元素对称,那么显然循环节个数就是gcd(x, n)。

Q.E.D.


你可能感兴趣的:(置换,Polya,同余,项链问题,POJ2154)