之前遇到过一些关于二次剩余的题目,因为姿势不够都跳了。由于最近觉得自己的数论姿势严重不足,便觉得有必要来学习一下二次剩余相关的算法。
学完后感觉这个算法作者的脑洞真的是比较大,居然能想出这么巧妙的构造。
关于这个算法的介绍,我比较推荐czy大爷的博文。
(以下内容均在模数 p p p为奇素数的前提下讨论)
首先要搞懂什么是二次剩余。若方程 x 2 ≡ a ( m o d p ) x^2\equiv a\pmod p x2≡a(modp)有解,则称 a a a为 p p p的二次剩余,反之则称 a a a为 p p p的二次非剩余。说白了就是在模意义下能否开根号。
###勒让德符号
勒让德符号是这样定义的:
( a p ) = { 1 , a 为 p 的 二 次 剩 余 − 1 , a 为 p 的 二 次 非 剩 余 0 , a ≡ 0 ( m o d p ) \left(\frac{a}{p}\right)= \begin{cases} 1, & a为p的二次剩余 \\ -1, & a为p的二次非剩余\\ 0, & a\equiv 0\pmod p \end{cases} (pa)=⎩⎪⎨⎪⎧1,−1,0,a为p的二次剩余a为p的二次非剩余a≡0(modp)
若 a a a是不被 p p p整除的正整数,则 ( a p ) ≡ a p − 1 2 \left(\frac{a}{p}\right)\equiv a^{\frac{p-1}{2}} (pa)≡a2p−1
证明:
当 ( a p ) = 1 \left(\frac{a}{p}\right)=1 (pa)=1时,方程 x 2 ≡ a ( m o d p ) x^2\equiv a\pmod p x2≡a(modp)有解。根据费马小定理可得 a p − 1 2 ≡ 1 ( m o d p ) a^{\frac{p-1}{2}}\equiv 1\pmod p a2p−1≡1(modp)。
当 ( a p ) = − 1 \left(\frac{a}{p}\right)=-1 (pa)=−1时,方程 x 2 ≡ a ( m o d p ) x^2\equiv a\pmod p x2≡a(modp)无解。因为 p p p是素数,由数论知识可知对于每个 1 < = i < p 1<=i<p 1<=i<p,都有唯一的一个整数 j j j使得 i j ≡ a ( m o d p ) ij\equiv a\pmod p ij≡a(modp)。所以我们可以把 1 , 2 , . . . , p − 1 1,2,...,p-1 1,2,...,p−1分成 p − 1 2 \frac{p-1}{2} 2p−1对,使得每对的乘积都为 a a a。
于是有 ( p − 1 ) ! ≡ a p − 1 2 (p-1)!\equiv a^{\frac{p-1}{2}} (p−1)!≡a2p−1。根据威尔逊定理有 ( p − 1 ) ! ≡ − 1 ( m o d p ) (p-1)!\equiv -1\pmod p (p−1)!≡−1(modp),可得 a p − 1 2 ≡ − 1 ( m o d p ) a^{\frac{p-1}{2}}\equiv -1\pmod p a2p−1≡−1(modp)。
定理1:对于方程 x 2 ≡ a ( m o d p ) x^2\equiv a\pmod p x2≡a(modp),总共有 p − 1 2 \frac{p-1}{2} 2p−1个不同的 n n n使得该方程有解。
证明:若有两个数 u u u和 v v v均满足它们的平方在模 p p p意义下同余,那么必然有 p ∣ ( u + v ) ( u − v ) p|(u+v)(u-v) p∣(u+v)(u−v)。由于 p p p不可能整除 u − v u-v u−v,那么可以得出 p p p整除 u + v u+v u+v。这个结论反过来也是成立的,因此共有 p − 1 2 \frac{p-1}{2} 2p−1种不同的平方。且每一个 p p p的二次剩余恰好有两个解。
###定理2
定理2: ( a + b ) p ≡ a p + b p ( m o d p ) (a+b)^p\equiv a^p+b^p\pmod p (a+b)p≡ap+bp(modp)
证明:通过二项式展开可以得到 ( a + b ) p = ∑ k = 0 p C p k a k b p − k (a+b)^p=\sum_{k=0}^pC_p^ka^kb^{p-k} (a+b)p=k=0∑pCpkakbp−k
因为当 k k k不等于 p p p且不为 0 0 0时, C p k C_p^k Cpk中的 p p p是不可能被消掉的,于是就会在取模时被消掉。
我们现在要求 x 2 ≡ n ( m o d p ) x^2\equiv n\pmod p x2≡n(modp)的一个解。
先随机出一个 a a a使得 ( a 2 − n ) p − 1 2 ≡ − 1 ( m o d p ) (a^2-n)^{\frac{p-1}{2}}\equiv -1\pmod p (a2−n)2p−1≡−1(modp)。由于 p p p的非二次剩余的数量为 p − 1 2 \frac{p-1}{2} 2p−1,所以随机到一个满足条件的 a a a的期望随机次数为 2 2 2。
求出 a a a,之后显然 a 2 − n a^2-n a2−n并不能开根号。但我们就是强行让他开根号!设 ω = a 2 − n \omega=\sqrt{a^2-n} ω=a2−n为虚数单位,类似于 i = − 1 i=\sqrt{-1} i=−1。那么这一个“复数域” F p 2 \mathbb{F}_{p^2} Fp2的每一个数都可以表示成 a + ω b a+\omega b a+ωb的形式,且这个数域仍然有很多很好的性质,具体见下面:
有一个结论就是 x = ( a + ω ) p + 1 2 x=(a+\omega)^{\frac{p+1}{2}} x=(a+ω)2p+1。
证明:
x 2 ≡ ( a + ω ) p + 1 x^2\equiv (a+\omega)^{p+1} x2≡(a+ω)p+1
≡ ( a + ω ) p ( a + ω ) \equiv (a+\omega)^p(a+\omega) ≡(a+ω)p(a+ω)
≡ ( a − ω ) ( a + ω ) \equiv (a-\omega)(a+\omega) ≡(a−ω)(a+ω)
≡ a 2 − ω 2 \equiv a^2-\omega^2 ≡a2−ω2
≡ a 2 − a 2 + n \equiv a^2-a^2+n ≡a2−a2+n
≡ n ( m o d p ) \equiv n\pmod p ≡n(modp)
根据拉格朗日定理可得答案中 ω \omega ω的系数必然为 0 0 0,所以问题就被我们圆满解决了。