二次剩余

二次剩余:

对于整数 q , n q,n q,n,若存在 x x x 使得
x 2 ≡ q m o d    n x^2\equiv q\mod n x2qmodn
则称 q q q n n n 的二次剩余,否则 q q q n n n 的非二次剩余
对于奇质数 p p p,引入 L e g e n d r e Legendre Legendre 符号

定义:

( a p ) = { 0 p ∣ a − 1 p ∤ a , a 不 是 模 p 意 义 下 的 二 次 剩 余 1 p ∤ a , a 是 模 p 意 义 下 的 二 次 剩 余 \left(\frac{a}{p}\right)=\left\{ \begin{aligned} & 0 & p|a \\ & -1 & p\nmid a,a 不是模 p 意义下的二次剩余 \\ & 1 & p\nmid a,a 是模 p 意义下的二次剩余 \end{aligned} \right. (pa)=011papa,appa,ap

性质:恰有 p − 1 2 \frac{p-1}{2} 2p1 个二次剩余
a 2 ≡ b 2 m o d    p → a ≡ b m o d    p 或 a ≡ − b m o d    p a^2\equiv b^2\mod p \rightarrow a\equiv b \mod p\text{或} a\equiv -b \mod p a2b2modpabmodpabmodp

Euler判别法:

对于奇质数 p p p
( a p ) = a p − 1 2 m o d    p \left(\frac{a}{p}\right)=a^{\frac{p-1}{2}}\mod p (pa)=a2p1modp
只需考虑 a ≢ 0 m o d    p a \not \equiv 0\mod p a0modp 的情况
a p − 1 ≡ 1 → a p − 1 2 ≡ ± 1 a^{p-1}\equiv 1 \rightarrow a^{\frac{p-1}{2}}\equiv \pm 1 ap11a2p1±1
a ≡ t 2 → a p − 1 2 ≡ t p − 1 ≡ 1 a\equiv t^2\rightarrow a^{\frac{p-1}{2}}\equiv t^{p-1}\equiv 1 at2a2p1tp11
推论:
( a p ) ( b p ) = ( a b p ) \left(\frac{a}{p}\right)\left(\frac{b}{p}\right)=\left(\frac{ab}{p}\right) (pa)(pb)=(pab)
如果要找一个二次剩余,那么期望两次可以猜中

二次互反律:

摘自 https://www.zhihu.com/question/59572768/answer/254653900
对于奇质数 p , q p,q p,q
( q p ) ( p q ) = ( − 1 ) p − 1 2 q − 1 2 \left(\frac{q}{p}\right)\left(\frac{p}{q}\right)=(-1)^{\frac{p-1}{2}\frac{q-1}{2}} (pq)(qp)=(1)2p12q1

高斯引理:
对于 ( a , p ) = 1 (a,p)=1 (a,p)=1 ( a p ) = ( − 1 ) S \left(\frac{a}{p}\right)=(-1)^S (pa)=(1)S,其中 S S S 定义为 { a , 2 a , … , p − 1 2 a } \{a,2a,\dots,\frac{p-1}{2}a\} {a,2a,,2p1a} 中最小剩余系大于 p − 1 2 \frac{p-1}{2} 2p1 的个数
首先这 p − 1 2 \frac{p-1}{2} 2p1 个数有一些落在 p − 1 2 \frac{p-1}{2} 2p1 之前,有些在之后
将之前的集合记为 { v 1 , v 2 , … , v t } \{v_1,v_2,\dots,v_t\} {v1,v2,,vt},之后的集合记为 { u 1 , u 2 , … , u S } \{u_1,u_2,\dots,u_S\} {u1,u2,,uS}
下面证 { v 1 , v 2 , … , v t , p − u 1 , p − u 2 , … , p − u S } \{v_1,v_2,\dots,v_t,p-u_1,p-u_2,\dots,p-u_S\} {v1,v2,,vt,pu1,pu2,,puS} 取遍 [ 1 , p − 1 2 ] [1,\frac{p-1}{2}] [1,2p1] 的所有数
v i ≢ v j , u i ≢ u j v_i\not\equiv v_j,u_i\not\equiv u_j vivj,uiuj,若 v i ≡ p − u j v_i\equiv p-u_j vipuj 则有 m a ≡ − n a ma\equiv -na mana,而 m , n ≤ p − 1 2 m,n\le \frac{p-1}{2} m,n2p1 显然不存在
于是有 ( − 1 ) S ∏ v i ∏ u i ≡ ( p − 1 2 ) ! (-1)^S\prod v_i\prod u_i\equiv (\frac{p-1}{2})! (1)Sviui(2p1)!
∏ v i ∏ u i ≡ ( p − 1 2 ) ! a p − 1 2 \prod v_i\prod u_i \equiv (\frac{p-1}{2})!a^{\frac{p-1}{2}} viui(2p1)!a2p1
故得证

引理:
对于奇质数 p p p 以及奇数 a a a ( a p ) = ( − 1 ) T ( a , p ) \left(\frac{a}{p}\right)=(-1)^{T(a,p)} (pa)=(1)T(a,p)
其中 T ( a , p ) = ∑ i = 1 p − 1 2 ⌊ a i p ⌋ T(a,p)=\sum_{i=1}^{\frac{p-1}{2}}\lfloor\frac{ai}{p}\rfloor T(a,p)=i=12p1pai
首先知道
∑ v i + ∑ u i + ∑ i = 1 p − 1 2 ⌊ a i p ⌋ p = ∑ i = 1 p − 1 2 i a \sum v_i+\sum u_i+\sum_{i=1}^{\frac{p-1}{2}}\lfloor\frac{ai}{p}\rfloor p=\sum_{i=1}^{\frac{p-1}{2}}ia vi+ui+i=12p1paip=i=12p1ia
又知道
∑ i = 1 p − 1 2 i = ∑ p − u i + ∑ v i = p S − ∑ u i + ∑ v i \sum_{i=1}^{\frac{p-1}{2}}i=\sum p-u_i+\sum v_i=pS-\sum u_i+\sum v_i i=12p1i=pui+vi=pSui+vi
相减得
( a − 1 ) ∑ i = 1 p − 1 2 i = p T ( a , p ) − p S + 2 ∑ u i (a-1)\sum_{i=1}^{\frac{p-1}{2}}i=pT(a,p)-pS+2\sum u_i (a1)i=12p1i=pT(a,p)pS+2ui
模一个 2
T ( a , p ) ≡ S m o d    2 T(a,p)\equiv S \mod 2 T(a,p)Smod2

容易发现 T ( a , p ) T(a,p) T(a,p) 实质是一个整点计数,且 T ( a , p ) + T ( p , a ) = p − 1 2 a − 1 2 T(a,p)+T(p,a)=\frac{p-1}{2}\frac{a-1}{2} T(a,p)+T(p,a)=2p12a1(这里 a a a 需要是奇质数)
那么只需要证直线 y = a x p y=\frac{ax}{p} y=pax 不经过 x ∈ [ 1 , p − 1 2 ] x\in [1,\frac{p-1}{2}] x[1,2p1] 的整点即可,显然不经过,故得证

求解

x x x 使得 x 2 ≡ n m o d    p x^2\equiv n\mod p x2nmodp
求出原根及 n n n 的指标 r r r,输出 g ± r 2 g^{\pm \frac{r}{2}} g±2r 即可, O ( p ) O(\sqrt p) O(p )

Cipolla算法:
可以在 p o l y l o g ( p ) polylog(p) polylog(p) 的时间求解

  1. 找到 a a a,使得 a 2 − n a^2-n a2n 是模 p p p 的非二次剩余
  2. 输出 ± ( a − a 2 − n ) p + 1 2 \pm (a-\sqrt{a^2-n})^{\frac{p+1}{2}} ±(aa2n )2p+1

正确性证明:
ω = a 2 − n \omega =\sqrt{a^2-n} ω=a2n

( a − ω ) p + 1 = ( a − ω ) p ( a − ω ) = ( a p − ω p ) ( a − ω ) = ( a − ( a 2 − n ) p − 1 2 ω ) ( a − ω ) = ( a + ω ) ( a − ω ) = n (a-\omega)^{p+1}=(a-\omega)^p(a-\omega)\\=(a^p-\omega^p)(a-\omega)\\=(a-(a^2-n)^{\frac{p-1}{2}}\omega)(a-\omega)\\=(a+\omega)(a-\omega)=n (aω)p+1=(aω)p(aω)=(apωp)(aω)=(a(a2n)2p1ω)(aω)=(a+ω)(aω)=n
需要封装一个 a + ω b a+\omega b a+ωb 的系数类

p k p^k pk 意义下的二次剩余求解

节选自:https://blog.csdn.net/zxyoi_dreamer/article/details/85195819
n = p r a , p ∤ a , 0 ≤ r < k n=p^ra,p\nmid a,0\le rn=pra,pa,0r<k,有解时显然需要 r r r 为偶数
x = p r / 2 x ′ x=p^{r/2}x' x=pr/2x,即解 x ′ 2 ≡ a m o d    p k − r x'^2\equiv a\mod p^{k-r} x2amodpkr
先接出 r 2 ≡ a m o d    p r^2\equiv a \mod p r2amodp,令 ( r 2 − a ) k ≡ t 2 − u 2 a m o d    p k (r^2-a)^k\equiv t^2-u^2a\mod p^k (r2a)kt2u2amodpk
可以利用 ( r + a ) k = t + u a (r+\sqrt a)^k=t+u\sqrt a (r+a )k=t+ua 算出 u , t u,t u,t
于是 a ≡ u − 2 t 2 m o d    p k a\equiv u^{-2}t^2\mod p^k au2t2modpk,故 x ′ ≡ u − 1 t m o d    p k x'\equiv u^{-1}t\mod p^k xu1tmodpk,只需用 e x g c d exgcd exgcd 求逆即可

2 k 2^k 2k 意义下的二次剩余求解

p = 4 p=4 p=4 时,恰有两个解,分别为 1 , 3 1,3 1,3
其余情况,显然任意奇数模 8 余 1,故只有模 8 余 1 的奇数有二次剩余
p = 8 p=8 p=8 时,恰有 4 个解,分别为 ± 1 , ± 3 \pm 1,\pm 3 ±1,±3
性质:当 p ≥ 8 p\ge 8 p8 时,对于 a ≡ 1 m o d    8 a\equiv 1\mod 8 a1mod8,当 x 2 ≡ a m o d    p x^2\equiv a\mod p x2amodp 恰有 4 个解,分别为 ± x k , ± ( 2 k − 1 − x k ) \pm x_k,\pm (2^{k-1}-x_k) ±xk,±(2k1xk)
归纳证明:设 x 2 ≡ a m o d    2 k x^2\equiv a\mod 2^k x2amod2k 的 4 个解为 x k , 2 k − 1 − x k x_k,2^{k-1}-x_k xk,2k1xk
x k 2 − ( 2 k − 1 − x k ) 2 ≡ x k 2 k ≡ 2 k m o d    2 k + 1 x_k^2-(2^{k-1}-x_k)^2\equiv x_k2^k\equiv 2^k\mod 2^{k+1} xk2(2k1xk)2xk2k2kmod2k+1
x k , 2 k − 1 − x k x_k,2^{k-1}-x_k xk,2k1xk 恰有一个可以作为 x k + 1 x_{k+1} xk+1
( 2 k − x k + 1 ) 2 ≡ x k + 1 2 m o d    2 k + 1 (2^k-x_{k+1})^2\equiv x_{k+1}^2 \mod 2^{k+1} (2kxk+1)2xk+12mod2k+1 故存在 4 个 x k + 1 x_{k+1} xk+1
下面将通过一个不断升幂的构造方法求解:
通过上面的叙述,我们知道, x k + 1 x_{k+1} xk+1 可以表示为 x k + t k 2 k − 1 x_k+t_{k}2^{k-1} xk+tk2k1
要求: x k + 1 2 ≡ ( x k + t k 2 k − 1 ) 2 ≡ x k 2 + 2 k t k ≡ a m o d    2 k + 1 x_{k+1}^2\equiv(x_k+t_k2^{k-1})^2\equiv x_k^2+2^kt_k\equiv a\mod 2^{k+1} xk+12(xk+tk2k1)2xk2+2ktkamod2k+1
那么 t k ≡ a − x k 2 2 k t_k\equiv \frac{a-x_k^2}{2^k} tk2kaxk2 故可以 O ( k ) O(k) O(k) 求解

任意模数: c r t crt crt 即可

你可能感兴趣的:(数学)