对于
n
n
n个元素的旋转有
n
n
n个置换
(
0
1
.
.
.
n
−
1
1
2
.
.
.
0
)
(
0
1
.
.
.
n
−
1
2
3
.
.
.
1
)
.
.
.
(
0
1
.
.
.
n
−
1
0
1
.
.
.
n
−
1
)
\begin{pmatrix} 0&1&...&n-1\\ 1&2&...&0\\ \end{pmatrix} \begin{pmatrix} 0&1&...&n-1\\ 2&3&...&1\\ \end{pmatrix} ... \begin{pmatrix} 0&1&...&n-1\\ 0&1&...&n-1\\ \end{pmatrix}
(0112......n−10)(0213......n−11)...(0011......n−1n−1)
证明第
i
(
1
≤
i
≤
n
)
i(1\le i\le n)
i(1≤i≤n)个置换有
g
c
d
(
n
,
i
)
gcd(n,i)
gcd(n,i)个循环节。
证:
设
f
i
(
j
)
f_i(j)
fi(j)表示数字
j
j
j在第
i
i
i个置换下所对应的值,则
f
i
(
j
)
=
(
j
+
i
)
m
o
d
n
f
i
(
(
j
+
i
)
m
o
d
n
)
=
(
j
+
2
i
)
m
o
d
n
.
.
.
f
i
(
(
j
+
(
k
−
1
)
i
)
m
o
d
n
)
=
(
j
+
k
i
)
m
o
d
n
=
j
\begin{aligned} f_i(j)&=(j+i)\;mod\;n\\ f_i((j+i)\;mod\;n)&=(j+2i)\;mod\;n\\ ...\\ f_i((j+(k-1)i)\;mod\;n)&=(j+ki)\;mod\;n=j\\ \end{aligned}
fi(j)fi((j+i)modn)...fi((j+(k−1)i)modn)=(j+i)modn=(j+2i)modn=(j+ki)modn=j
上面假设进行了
k
k
k次对应,回到了
j
j
j,则
j
j
j所在的循环节长度为
k
k
k,求出
k
k
k
j
+
k
i
≡
j
m
o
d
n
k
i
≡
0
m
o
d
n
\begin{aligned} j+ki&\equiv j\ mod\;n\\ ki&\equiv0\ mod\;n \end{aligned}
j+kiki≡j modn≡0 modn
则
n
∣
k
i
n|ki
n∣ki,又
i
∣
k
i
i|ki
i∣ki,所以
L
C
M
(
n
,
i
)
∣
k
i
LCM(n,i)|ki
LCM(n,i)∣ki,又因为
k
k
k是循环节长度,要取最小值,所以
k
i
=
L
C
M
(
n
,
i
)
ki=LCM(n,i)
ki=LCM(n,i),
k
=
L
C
M
(
n
,
i
)
i
k=\frac{LCM(n,i)}{i}
k=iLCM(n,i),所以对于所有的数
j
j
j在置换
i
i
i中所在的循环节长度一样,都等于
L
C
M
(
n
,
i
)
i
\frac{LCM(n,i)}{i}
iLCM(n,i),所以循环节个数为
x
x
x,有
x
∗
L
C
M
(
n
,
i
)
i
=
n
x
=
n
i
L
C
M
(
n
,
i
)
x
=
g
c
d
(
n
,
i
)
\begin{aligned} x&*\frac{LCM(n,i)}{i}=n\\ x&=\frac{ni}{LCM(n,i)}\\ x&=gcd(n,i)\\ \end{aligned}
xxx∗iLCM(n,i)=n=LCM(n,i)ni=gcd(n,i)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交