二次剩余

解方程 \(x^2 \equiv n \pmod p\),其中 \(p\) 是奇质数,\(x \in [0,p-1]\)。


我们声称不同的解个数 \(\leq 2\)。

假设存在两个不同的解 \(x_1,x_2\),则 \(x_1^2 \equiv x_2^2 \pmod p\)。

也就是说,\(x_1^2 - x_2^2 \equiv 0 \pmod p\)。

平方差公式,\((x_1 + x_2)(x_1 - x_2) \equiv 0 \pmod p\)。

因为 \(p\) 是奇素数,则下列两种情况必然成立至少一种:

  • \(x_1 + x_2 \equiv 0 \pmod p\)

  • \(x_1 \equiv x_2 \pmod p\)

由此可见,原方程最多有两个不同解,若存在两个不同解,则这两个解互为相反数。

接下来考虑只存在一个解的情况,不妨令为 \(x\),则另一个解可以看作 \(-x\)。

此时我们有 \(x \equiv -x \pmod p\),即 \(x \equiv 0 \pmod p\)。

接下来我们令 \(n \in [1,p-1]\),则方程必然有 \(0\) 或 \(2\) 个解。


根据上面的结论,我们将 \([1,p-1]\) 的数分为互为相反数的 \(\dfrac{p-1}{2}\) 组。

显然,每组对应的 \(n\) 互不相同,即恰好有 \(\dfrac{p-1}{2}\) 种 \(n\) 有解。


考虑如何判断对应的 \(n\) 是否有解。

考虑 \(n^{p-1} \equiv 1 \pmod p\)。

由 \(p\) 为奇数,可得 \(n^{\frac{p-1}{2} \times 2} \equiv 1 \pmod p\)。

考虑令 \(m \equiv n^{\frac{p-1}{2}} \pmod p\),则 \(m^2 \equiv 1 \pmod p\)。

由上面的结论,我们可以得到 \(m\) 在模 \(p\) 意义下为 \(1\) 或 \(-1\)。

假设原方程存在解 \(x_0\),则 \(m \equiv (x_0^2)^{\frac{p-1}{2}} \pmod p\)。

化简,即为 \(m \equiv x_0^{p-1} \equiv 1\pmod p\)。

我们声称 \(m \equiv 1 \pmod p\) 与原方程有解等价。

接下来,我们假设原方程有解,继续分析。


考虑找到一个 \(a\),使得 \(a^2 - n\) 非二次剩余。

这一步采用随机化,\(O(1)\) 次 check 后可以找到一个合法的 \(a\)。

接下来考虑扩域,令 \(a^2 - n = i^2\),我们声称 \((a+i)^{p+1} \equiv n \pmod p\)。

首先我们考虑证明 \(i^p \equiv -i \pmod p\)。

显然 \(i^p \equiv i \times (i^2)^{\frac{p-1}{2}} \pmod p\)。

后者即为 \(i \times (a^2 - n)^{\frac{p-1}{2}} \pmod p\)。

由上面的结论,\((a^2 - n)^{\frac{p-1}{2}} \equiv -1 \pmod p\)。

也就是说 \(i^p \equiv -i \pmod p\)。

接下来我们证明 \((u+v)^p \equiv u^p + v^p \pmod p\)。

根据二项式定理,对于展开后的中间项系数,均形如 \(\dbinom{p}{i}\)。

而 \(i \in [1,p-1]\) 时,根据展开式可知 \(\dbinom{p}{i}\) 为 \(p\) 的倍数。

接下来回到开头的结论,显然左式为 \(a^{p+1} + i^{p+1}\)。

根据结论,其等价于 \(a^2 - i^2\),由定义知其就是 \(n\)。

也就是说,\((a+i)^{\frac{p+1}{2}}\) 是一个解,另一个解为其相反数。


此时我们唯一需要关心的问题是当前解的虚部是否为 \(0\),考虑证明。

假设 \((u+vi)^2 \equiv n \pmod p\),考虑展开。

左式为 \(u^2 + v^2(a^2 - n) + 2uvi\),考虑在虚实两边建立等量关系。

即 \(2uvi \equiv n - u^2 - v^2(a^2 - n) \pmod p\),容易发现右边为实数,左边为虚数。

需要两者相等,则左边必然为 \(0\)。

考虑 \(v\) 不为 \(0\) 时,\(u\) 必然为 \(0\),即 \(v^2i^2 \equiv n \pmod p\)。

显然 \(v^2\) 为二次剩余,故 \(v^{-2}\) 也是二次剩余,\(\dfrac{n}{v^2}\) 也是二次剩余。

然而 \(i^2 \equiv \dfrac{n}{v^2} \pmod p\),产生矛盾,故舍去。

综上,这就是计算二次剩余的方法。

posted @ 2026-04-07 21:09  Oken喵~  阅读(32)  评论(0)    收藏  举报