• 二次剩余


    干什么的

    膜意义下开方。

    抄了CMXRYNP大爷的笔记。

    定义

    对于一个奇质数 (p) ,定义它的二次剩余 (mathbf{F_{p^2}}) 为一个集合,其中每个数 (n) 满足 (exist xin[0,p),x^2equiv npmod{p})

    性质

    二次剩余数量

    (midmathbf{F_{p^2}mid}=frac{p+1}{2}) 。理由如下:

    (u^2equiv v^2equiv npmod{p},u eq v) ,那么有 ((u-v)(u+v)equiv0 pmod{p}) 。显然只能是 (u+v=p) 。于是可以把 ((0,p)) 中的数分成 (frac{p-1}{2}) 组,每一组中的数的平方在模意义下都相同,不同组之间不同。加上 (0) 就是 (frac{p+1}{2}) 个。

    欧拉准则

    用来判定一个非零数是否是二次剩余。

    (p) 是奇质数且 ((d,p)=1,d>0) ,则:

    1. (din mathbf{F_{p^2}}Leftrightarrow d^{frac{p-1}{2}}equiv 1pmod{p})
    2. (d otin mathbf{F_{p^2}}Leftrightarrow d^{frac{p-1}{2}}equiv -1pmod{p})

    证明:首先有 (d^{p-1}-1=(d^{frac{p-1}{2}}-1)(d^{frac{p-1}{2}}+1)equiv 0pmod{p}) 。然后若 (exist x,x^2equiv dpmod{p}) ,那么就显然有 (d^{frac{p-1}{2}}equiv x^{p-1}pmod{p}) 。到这里能有 (din mathbf{F_{p^2}}Rightarrow d^{frac{p-1}{2}}equiv 1pmod{p})

    然后由拉格朗日定理得一个 (k) 次多项式在模意义下也最多只有 (k) 个根。因此只有 (frac{p-1}{2}) 个数满足 (d^{frac{p-1}{2}}-1equiv 0pmod{p}) 。又因为 (mid complement_mathbf{F_{p^2}}{0} mid=frac{p-1}{2}) ,因此以上两个推论都成立。

    算法过程

    1. 随机一个 (t) ,满足 (t^2-n) 是非二次剩余。
    2. (w=sqrt{t^2-n}) ,答案为 (xequiv(t+w)^{frac{p+1}{2}}pmod{p})

    以上过程中 (t+w) 可以看成一个模意义下的复数。(因为 (w) 在模意义下事实上不存在,就把它当作和 (i) 一样的虚数单位)

    复数取模就是对实部、虚部分别取模(至少代码中这么处理)。

    证明

    几个式子:

    [(a+b)^pequiv sum_{i=0}^p inom{p}{i}a^ib^{p-i}equiv a^p+b^ppmod{p} \ w^{p-1}equiv (w^2)^{frac{p-1}{2}}equiv (t^2-n)^{frac{p-1}{2}}equiv -1pmod{p} \ (k+w)^pequiv k-wpmod{p} \ x^2equiv (t+w)^p(t+w)equiv (t-w)(t+w)equiv t^2-t^2+nequiv npmod{p} ]

    然后我们求出了一个 (x) ,另外一个就是 (p-x)

  • 相关阅读:
    1037. 在霍格沃茨找零钱(20)
    1036. 跟奥巴马一起编程(15)
    Java基础(五)面对对象
    Java基础(四)方法和数组
    Java基础(三)选择和循环结构
    Java基础(一)
    工厂模式(Factory Pattern)
    git 基本操作
    CXF生成客户端遇到的问题
    简单的CRUD(二)
  • 原文地址:https://www.cnblogs.com/pupuvovovovo/p/11679406.html
Copyright © 2020-2023  润新知