1. 程式人生 > >【證明】關於項鍊問題中旋轉操作的置換群的迴圈節個數、長度的證明【Pólya】【同餘】

【證明】關於項鍊問題中旋轉操作的置換群的迴圈節個數、長度的證明【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.