《数论概论》读书笔记 第23章 二次剩余

什么叫二次剩余,其实就是对于给定的 p(pP)n ,如果有 x 满足 x2n(modp) ,那么 n 在模 p 意义下就是二次剩余。其实就是模意义下能否开根号。

我们先定义 Fp ,这是一个数域,其实就是 0 p1 p 个数与模 p 意义下加减乘除运算构成的集合。

定理1:对于 x2n(modp) 总共有 p12 个的 n 能使该方程有解(将 n=0 情况除去,由于该情况显然有 x=0 )。
证明:我们只用考虑所有 x2 。如果存在不同的两个数 uv 它们的平方在模 p 意义下同余,那么显然有 p|(u2v2) 。由平方差公式 p|(u+v)(uv) 。显然 p 不可能整除 uv ,因此 p 整除 u+v ,因此 u+v0(modp) 。这个结论反过来也是成立的,因此共有 p12 种互不相同的平方,显然对应了所有有解的 n ,而且同一个 n 还一定存在两个互为相反数的解。

Description:

求解 x2n(modp) p 是一个奇质数。

Solution:
由费马小定理:
              np11(modp)
所以:
              np12±1(modp)

由欧拉准则:
              (np)np12(modp)
其中:
              (np) 为勒让德符号。

因为 xn12(modp) ,所以有 xp1np121(modp) 。即:

              (np)=110npnpn0(modp)

设:
              k=a2n,ω=k

则该方程的解为:
              x(a+ω)p+12(modp)

证明:若 k 是该模意义下的非二次剩余,
则:
              wp1=np12=1

同时:
              (a+b)pap+bp(modp)

则:

x21(a+ω)p+1(a+ω)p(a+ω)(ap+ωp)(a+ω)(ap1a+ωp1ω)(a+ω)(aω)(a+ω)a2ω2a2(a2n)n(modp)

另一解为:
              x2x1(modp)

如何找到这个 k 呢。因为非二次剩余的个数大约有一半,随机几次即可。

话不多说,可以参考资料:
ACdreamer 二次同余方程的解
二次剩余Cipolla算法学习小记

你可能感兴趣的:(《数论概论》读书笔记,《数论概论》读书笔记)