二次剩余及其计算方法

2019-04-14 08:50发布

class="markdown_views prism-dracula">

前言

在有些时候,我们会需要求解这样的问题x2a(modp)x^2equiv apmod{p}
给定aa求是否有xx满足这个式子,若有r则称a是模p的二次剩余
若没有满足条件的xx,则称a是模p的非二次剩余
然而在一些题目中,我们既要判定它是否是模p的二次剩余,也要判断其值,本文就对此进行一些探究

对于所有模数

二次剩余数量
我们发现a2(pa)2(modp)a^2equiv (p-a)^2pmod p
所以满足条件的二次剩余数量不可能超过n2+1leftlfloorfrac n2 ight floor+1

不同模数下的二次剩余

模数为偶质数
显然偶质数只有一个,那就是2
显然0011都是22的二次剩余
模数为奇质数
对于判定模数为奇素数时的情况
我们定义勒让德符号:
(ap)={+1a̸0(modp)xx2a(modp)1xx2a(modp)0a0(modp)left(frac ap ight)=egin{cases}+1&如果a otequiv0pmod p且有整数x满足x^2equiv apmod p\ -1&如果没有整数x满足x^2equiv apmod p\ 0&如果aequiv0pmod p end{cases} 我们先引入欧拉准则
这是一个用来判定的经典准则(其实勒让德符号的定义准确来说就是从这里定义的)
这里规定,当模数为奇素数的时候···(此处省略解释)
直接代入勒让德符号成为
(ap)=ap12(modp)left(frac ap ight)=a^{frac{p-1}2}pmod p
  • 口糊一下证明
    由于模数是奇素数,所以我们就可以使用拉格朗日定理(kk次多项式至多kk个根)
    所以对于任意一个aa,满足x2a(modp)x^2equiv apmod pxx数量至多22
    现在我们把a=0a=0的情况扔掉,因为a=0a=0显然满足上式
    只考虑a0a eq0的情况
    首先我们有费马小定理ap11(modp)a^{p-1}equiv1pmod p
    由于pp是奇数,我们开始推式子
    移项得
    ap110(modp)a^{p-1}-1equiv0pmod p
    因式分解得
    (ap121)(ap12+1)0(modp)(a^{frac{p-1}2}-1)(a^{frac{p-1}2}+1)equiv0pmod p
    我们发现,如果有xx满足x2a(modp)x^2equiv apmod p,那么根据费马小定理xp11(modp)x^{p-1}equiv1pmod p
    xxaa代替
    ap121(modp)a^{frac{p-1}2}equiv1pmod p
    如果没有满足条件的xx,这说明
    ap12̸1(modp)a^{frac{p-1}2} otequiv1pmod p
    则根据上面的方程,两项中至少有一项为00
    ap121(modp)a^{frac{p-1}2}equiv-1pmod p
    证毕

现在我们已经会如何判定了,然而OI中更多的是要求这个值(大雾)
假设我们现在已经判定完了,发现aa是模pp的二次剩余
我们现在要求x2a(modp)x^2equiv apmod p
移项得a1x21(modp)a^{-1}x^2equiv 1pmod p
xix_i