# 数论(二) --- ## 5.二次剩余 ### 5.1 二次剩余([Quadratic residue](https://en.wikipedia.org/wiki/Quadratic_residue))和二次非剩余定义 设整数$n\gt1, a\lt n$,如果存在$x\in\mathbb{z}_n$,满足$x^2\equiv a\pmod{n}$,那么称$a$是模$n$的二次剩余,否则$a$就称为模$n$的二次非剩余,用$QR_n$表示模$n$的二次剩余集合,用$QNR_n$表示模$n$的二次非剩余集合 ### 5.2 举例 $$ \begin{split} QR_{11}&=\{0^2,1^2,2^2,3^2, 4^2,5^2,6^2,7^2,8^2,9^2,10^2,11^2,\ldots\}\pmod{11}=\{0,1,3,4,5,9\}\\ QNR_{11}&=\{2,6,7,8,10\} \end{split} $$ ### 5.3 定理:欧拉准则 针对质数$p$的二次剩余判定,对于质数$p$,任意$x\in\mathbb{Z}_p^{*}$,$x\in QR_p$的充分必要条件为 $$ x^{(p-1)/2}\equiv 1\pmod{p} $$ $x\in QNR_p$的充分必要条件为 $$ x^{(p-1)/2}\equiv -1\pmod{p} $$ ### 5.4 定理 针对合数$n$的二次剩余判定,$n={p_1}^{a_1}\times{p_1}^{a_1}\times\cdots\times{p_k}^{a_k}$,那么$x\in QR_{n}$的充分必要条件为: $$ x\pmod{{p_i}^{a_i}}\in QR_{{p_i}^{a_i}} $$ ### 5.5 举例 $$\begin{split} n&=5\times7 \\ QR_5&=\{0,1,4\} \\ QNR_5&=\{2,3\} \\ QR_7&=\{0,1,2,4\} \\ QNR_7&=\{3,5,6\} \\ QR_{35}&=\{0,1,4,9,11,14,15,16,21,25,29,30\} \end{split} $$ ### 5.6 定理 对于质数$p$,$\mathbb{Z}_p^*$中有$(p-1)/2$个元素是模$p$的二次剩余,另外$(p-1)/2$个元素是模$p$的二次非剩余 ### 5.7 举例 $$ \mathbb{Z}_{11}^{*}=\{1,2,3,4,5,6,7,8,9,10\} \\ \{1,3,4,5,9\}\in QR_{11}\\ \{2,6,7,8,10\}\in QNR_{11}\\ $$ ### 5.8 **定理** 对于两个质数的乘积$n=qp$,那么$\mathbb{Z}_{n}$里恰好有1/4的数,也就是$(p-1)(q-1)/4$个是二次剩余,一般来说,如果合数n有k个质数因子,那么$\mathbb{Z}_{n}^{*}$中的元素中有$1/2^k$是二次剩余 ### 5.9 **举例** $$ \mathbb{Z}_{15}^{*}=\{1,2,4,7,8,11,13,14\} \\ \{1,4\}\in QR_{15}\\ \{2,7,8,11,13,14\}\in QNR_{15}\\ $$ ## 6. 勒让德-雅可比符号 ### 6.1 定义 对于任意质数$p\gt2$,和任意$a$,定义勒让德符号([Legendre_symbol](https://en.wikipedia.org/wiki/Legendre_symbol))为$L(a,p)$ $$ L(a,p) =\begin{cases} 1 & \text{if } a\in QR_p \text{ and } a\not\equiv 0 \pmod p\cr -1 & \text{if } a\in QNR_p \text{ and } a\not\equiv 0 \pmod p\cr 0 & \text{if } a \equiv 0 \pmod p\cr \end{cases} $$ ### 6.2 定理 勒让德符号计算方法 $$ L(a,p)=a^{(p-1)/2}\pmod{p}, \text{ and }L(a,p)=\in\{-1,0,1\} $$ ### 6.3 定义 对于合数$n\gt1$, 其素因子$n=p_1p_2\cdots p_k$(可重复),任意整数$a$,定义雅可比符号([Jacobi symbol](https://en.wikipedia.org/wiki/Jacobi_symbol)) $$ J(a,n)=L(a,p_1)L(a,p_2)\cdots L(a,p_k) $$ 注意:雅可比符号不能确定一个数$a$是否是对模$n$的二次剩余(除非$n$是质数),比如 $$ J(7,143)=L(7,11)L(7,13)=1 $$ 但7并不是143的二次剩余 ### 6.4 简写 勒让德符号和雅可比符号也可统一简写为$\left(\frac{a}{p}\right)$ ,或者$(a|p)$ ## 7. 模质数的二次平方根 ### 7.1 定理 对于质数$p\gt2$,如果$a\in QR_p, a\neq 0$,那么方程 $$ x^2\equiv a\pmod{p} $$ 在有两个解,也就是说a有两个平方根,其中一个在区间$[1,(p-1)/2]$,另一个在区间$[(p+1)/2, p-1]$,而且,其中一个平方根也属于模$p$的二次剩余,称为主平方根(pricipal square root) ### 7.2 举例 对于方程 $$ x^2\equiv9\pmod{11}\\ $$ 有两个解$x_1=3,x_2=8$, 其中 $$ 3\in[1,5], 8\in[6,10], 3\in QR_{11} $$ ### 7.3 算法:求模为质数时的平方根 #### 7.3.1 特殊情况 对于方程$x^2\equiv a\pmod{p},a\in QR_p$ 如果$p\equiv 3,7\pmod{8}$, $x\equiv \pm a^{(p+1)/2}\pmod{p}$ 如果$p\equiv 5\pmod{8}$, $x\equiv \pm a^{(p+3)/8}\pmod{p}$ 如果$p\equiv 3\pmod{4}$, $x\equiv \pm a^{(p+1)/4}\pmod{p}$ #### 7.3.2 对于一般情况的质数$p$,使用[Tonelli–Shanks](https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm)算法求解 ## 8. 模合数的二次平方根 参考: [https://www.johndcook.com/blog/quadratic_congruences/](https://www.johndcook.com/blog/quadratic_congruences/) ### 8.1 **算法** 模2的幂 对于方程$x^2\equiv a\pmod 2$,有解$x\equiv1\pmod2$ 方程$x^2\equiv a\pmod{2^2}$,当$a\equiv1\pmod4$时有2个解,$x\equiv\pm1\pmod4$ 方程$x^2\equiv a\pmod{2^n},n\geq3,\gcd(a,2)=1$, 当$a\equiv1\pmod8$时有4个解, ### 8.2 **算法** 模质数的幂 求解方程$x^2\equiv a\pmod{p^k},k\gt0, \gcd(a,p)=1$, 方程有解的充分必要条件是$\left(\frac{a}{p}\right)=1$, 也就是a是模p的二次剩余 方程有两个解,使用[Hensel's lemma](https://en.wikipedia.org/wiki/Hensel%27s_lemma)算法 设$x_k$是$x^2\equiv a\pmod{p^k}$的解,有$y_k$存在使得等式$2x_ky_k\equiv1\pmod{p^k}$成立,那么$x_{k+1}=x_k-(x_k^2-a)y_k$是方程$x^2\equiv a\pmod{p^{k+1}}$的解 ### 8.3 **举例** 求解方程 $$ x^2\equiv23\pmod{343} $$ 其中$343=7^3$,首先解方程 $$ x_1^2\equiv23\equiv2\pmod{7}, x_1=\pm3 $$ 以$x_1=3$为例,使用扩展欧几里得算法求解 $$ 2\times3\times y_1\equiv1\pmod{7}, y_1=6 \\ x_2=(x_1-(x_1^2-a)y_1)\pmod{49}=38 $$ 同理,求方程 $$ 2\times38\times y_2\equiv1\pmod{49}, y_2=20 \\ x_3=(38-(38^2-23)\times20)\pmod{343}=87 $$ 所以,最终方程的两个解是$\pm87(87,256)$ ### 8.4 **算法** 对于合数$n=p_1p_2\cdots p_k$, 整数$a\in QR_n$, 求解方程$x^2\equiv a\pmod{n}$ 首先求解模质数方程 $$ x_{p_1}^2\equiv a\pmod{p_1}\\ x_{p_1}^2\equiv a\pmod{p_1}\\ \cdots \\ x_{p_k}^2\equiv a\pmod{p_k} $$ 然后根据中国剩余定理,解方程组 $$ \cases{ x\equiv x_{p_1}\pmod{p_1} \\ x\equiv x_{p_2}\pmod{p_2} \\ \cdots \\ x\equiv x_{p_k}\pmod{p_k} } $$ 得到$x$,由于每个$x_{p_i}$有两个解,所以最终$x$有$2^k$个解 ### 8.5 **举例** $$ x^2\equiv15\pmod{77}, p=7,q=11 $$ 按照模为质数的方法解方程 $$ \begin{cases} x_p^2\equiv15\equiv 1\pmod{7} & \text{ } x_p=\pm1(1,6) \\ x_q^2\equiv15\equiv 4\pmod{11} & \text{ } x_q=\pm9(2,9) \end{cases} $$ 按照中国剩余定理,解以下四个方程组 $$ \cases{ x\equiv1\pmod{7} \\ x\equiv2\pmod{11} }\cases{ x\equiv1\pmod{7} \\ x\equiv9\pmod{11} }\cases{ x\equiv6\pmod{7} \\ x\equiv2\pmod{11} }\cases{ x\equiv6\pmod{7} \\ x\equiv9\pmod{11} } $$ 得到四个解$x=57,64,13,20$ ### 8.6 **定理** 如果不知道$n$的素因子,那么就模$n$的平方根是非常困难的问题