class="markdown_views prism-tomorrow-night">
什么是二次剩余问题
就是求解形如
x2≡a (mod p)
的关于
x的方程。
下面从不同的模数开始分类讨论解决二次剩余问题的方法
几个定义
如果关于
x的方程
x2≡a (mod p)有解。
称
a是模
p意义下的二次剩余,否则称为模
p意义下的二次非剩余。
为什么会出现二次非剩余,其实很简单。
考虑在
%p意义下本质不同的数只会有
p个。而其中
(−t)2≡t2(mod p),根据抽屉原理,总会有至少
O(2p)的数无法被
t2%p表示出来
勒让德符号(
Legendre symbol):
(pa)=⎩⎪⎨⎪⎧1−10a是%p下的二次剩余a是%p下的二次非剩余a≡0(mod p)
稍后会告诉怎么求勒让德符号。
1.模数为奇质数
首先来考虑
p是奇质数的情况。
解的存在性问题
欧拉准则:
欧拉准则:
(pa)≡a2p−1(mod p)
当
p∣a的时候欧拉准则显然成立。
否则由费马小定理我们有
ap−1≡1(mod p)
所以必然有
a2p−1≡±1(mod p)
先证明(pa)=1的情况
必要性:
当
a是
%p意义下的二次剩余,即
∃x,x2≡a(mod p)
那么我们有
a2p−1≡(x2)2p−1≡xp−1≡1(mod p)
必要性证明完毕
充分性:
设
p有一个原根
g,那么必然有
gi≡a(mod p)
则:
g2i(p−1)≡1(mod p)
由于
g为原根,所以必然会有
(p−1)∣2i(p−1)
即
i是偶数。
必然存在解
x0≡g2i(mod p)
充分性证毕。
那么
(pa)≡−1(mod p)的情况也就十分显然了。
首先由费马小定理
a2p−1≡±1(mod p)
由于前面的欧拉准则在
(pa)=1的必要性,二次非剩余的情况下
x2≡ap−1≡−1(mod p),显然不可能,违反了费马小定理。
求解:
O(log2p)解法:
首先求出
p−1=2