二次剩余
二次剩余,是对下面这个方程求解
x
2
≡
n
(
m
o
d
p
)
x^2 \equiv n \pmod p\\
x2≡n(modp)
(其中
p
p
p 为奇素数)
ps.以下内容都是建立在 n ≠ 0 n\not=0 n=0 的基础上的,因为 n = 0 n=0 n=0 时显然,且答案是在 m o d p \bmod\ p mod p 意义下的。
我们使用欧拉准则来判断这个方程是否有解。
由费马小定理,得
n
p
−
1
≡
1
(
m
o
d
p
)
∵
p
为奇素数
∴
n
2
(
p
−
1
2
)
≡
1
(
m
o
d
p
)
∴
n
p
−
1
2
≡
1
(
m
o
d
p
)
或
n
p
−
1
2
≡
−
1
(
m
o
d
p
)
n^{p-1} \equiv 1 \pmod p\\ \because p为奇素数\\ \therefore n^{2(\frac{p-1}{2})}\equiv 1\pmod p\\ \therefore n^{\frac{p-1}{2}}\equiv 1\pmod p或n^{\frac{p-1}{2}}\equiv -1\pmod p
np−1≡1(modp)∵p为奇素数∴n2(2p−1)≡1(modp)∴n2p−1≡1(modp)或n2p−1≡−1(modp)
若这个方程有解,则有
x
p
−
1
≡
1
(
m
o
d
p
)
或
x
p
−
1
≡
−
1
(
m
o
d
p
)
x^{p-1}\equiv 1\pmod p或x^{p-1}\equiv -1\pmod p
xp−1≡1(modp)或xp−1≡−1(modp)
后者显然不成立,所以
n
p
−
1
2
≡
−
1
(
m
o
d
p
)
n^{\frac{p-1}{2}}\equiv -1\pmod p
n2p−1≡−1(modp) 时方程无解。
下面,我们证 n p − 1 2 ≡ 1 ( m o d p ) n^{\frac{p-1}{2}}\equiv 1\pmod p n2p−1≡1(modp) 时方程有解。
我们将
n
n
n 用
g
k
g^k
gk 表示,其中
g
g
g 为
p
p
p 的原根,则有
g
k
(
p
−
1
2
)
≡
1
(
m
o
d
p
)
∵
p
−
1
∣
k
(
p
−
1
2
)
∴
2
∣
k
,即
k
为偶数
∴
原方程的一个解即为
g
k
2
g^{k(\frac{p-1}{2})}\equiv 1\pmod p\\ \because p-1|k(\frac{p-1}{2})\\ \therefore 2|k,即 k 为偶数\\ \therefore 原方程的一个解即为g^{\frac{k}{2}}
gk(2p−1)≡1(modp)∵p−1∣k(2p−1)∴2∣k,即k为偶数∴原方程的一个解即为g2k
这样我们就证明了
n
p
−
1
2
≡
1
(
m
o
d
p
)
n^{\frac{p-1}{2}}\equiv 1\pmod p
n2p−1≡1(modp) 是原方程有解的充要条件。
那么,这个方程究竟有几个解呢?我们先假设这个方程有多个解,那么对于任意两个解
x
1
,
x
2
x_1,x_2
x1,x2,有
x
1
2
≡
x
2
2
(
m
o
d
p
)
∴
x
1
2
−
x
2
2
≡
0
(
m
o
d
p
)
∴
(
x
1
+
x
2
)
(
x
1
−
x
2
)
≡
0
(
m
o
d
p
)
∵
x
1
,
x
2
≤
p
∴
x
1
−
x
2
≢
0
∴
x
1
+
x
2
≡
0
x_1^{2} \equiv x_{2}^{2} \pmod p\\ \therefore x_1^2-x_2^2\equiv 0\pmod p\\ \therefore (x_1+x_2)(x_1-x_2)\equiv 0\pmod p\\ \because x_1,x_2\leq p\\ \therefore x_1-x_2\not\equiv 0\\ \therefore x_1+x_2\equiv 0\\
x12≡x22(modp)∴x12−x22≡0(modp)∴(x1+x2)(x1−x2)≡0(modp)∵x1,x2≤p∴x1−x2≡0∴x1+x2≡0
由此可得,方程有且仅有两个解,且它们互为相反数。
因为是在 m o d p \bmod \ p mod p 意义下,所以 x x x 的相反数为 p − x p-x p−x 。
那么对于 1 1 1 至 p − 1 p-1 p−1 的 p − 1 2 \frac{p-1}{2} 2p−1 对相反数,每一对都对应一个二次剩余,且互不相等,也就是说, 1 1 1 至 p − 1 p-1 p−1 中,有 p − 1 2 \frac{p-1}{2} 2p−1 个数是二次剩余,而有 p − 1 2 \frac{p-1}{2} 2p−1 个数不是二次剩余。
我们用 Cipolla 算法对这个方程进行求解。
先在 [ 1 , p − 1 ] [1,p-1] [1,p−1] 中随机一个 a a a ,使 a 2 − n a^2-n a2−n 是非二次剩余,因为 [ 1 , p − 1 ] [1,p-1] [1,p−1] 中非二次剩余的数有 p − 1 2 \frac{p-1}{2} 2p−1 个,所以我们的期望随机次数是 2 2 2 次。
接下来,我们定义
i
2
≡
a
2
−
n
(
m
o
d
p
)
i^2 \equiv a^2-n \pmod p
i2≡a2−n(modp)
(我知道这个方程无解,但是这里的
i
i
i 其实是类似复数的一个定义,我们定义这样的一个数,使得它的平方为
a
2
−
n
a^2-n
a2−n )
方程的解即为 ± ( a + i ) p + 1 2 \pm(a+i)^{\frac{p+1}{2}} ±(a+i)2p+1 。
我们考虑证明。
将
x
x
x 代入,得
(
a
+
i
)
p
+
1
(a+i)^{p+1}
(a+i)p+1
我们可以将其拆成
(
a
+
i
)
p
(
a
+
i
)
(a+i)^p(a+i)
(a+i)p(a+i)
由二项式定理,得
(
a
+
i
)
p
=
∑
j
=
0
p
(
p
j
)
a
j
i
p
−
j
(a+i)^p=\sum_{j=0}^{p}{p \choose j}a^ji^{p-j}
(a+i)p=j=0∑p(jp)ajip−j
在
m
o
d
p
\bmod \ p
mod p 意义下,因为
j
∈
[
1
,
p
−
1
]
j\in[1,p-1]
j∈[1,p−1] 时组合数中都含有
p
p
p 这一项,所以
m
o
d
p
\bmod \ p
mod p 为
0
0
0 ,因此
(
a
+
i
)
p
≡
a
p
+
i
p
≡
a
+
i
p
(
m
o
d
p
)
(a+i)^p\equiv a^p+i^p\equiv a+i^p \pmod p
(a+i)p≡ap+ip≡a+ip(modp)
我们将
i
p
i^p
ip 进行化简,得
i
p
≡
i
(
i
2
)
p
−
1
2
≡
i
(
a
2
−
n
)
p
−
1
2
≡
−
i
(
m
o
d
p
)
i^p\equiv i(i^2)^{\frac{p-1}{2}}\equiv i(a^2-n)^{\frac{p-1}{2}}\equiv -i\pmod p
ip≡i(i2)2p−1≡i(a2−n)2p−1≡−i(modp)
原式即为
(
a
−
i
)
(
a
+
i
)
≡
a
2
−
i
2
≡
n
(
m
o
d
p
)
(a-i)(a+i)\equiv a^2-i^2\equiv n\pmod p
(a−i)(a+i)≡a2−i2≡n(modp)
然后就证明完了(?
嘶,这算不算写完了
应该算的吧。。。
那就这样吧,不想写了()