DescriptionDescription

求解x2≡n(modp)x^2 \equiv n \pmod p。pp是一个奇质数。

SolutionSolution

由费马小定理

np−1≡1(modp)

n^{p-1}\equiv 1 \pmod p所以

np−12≡±1(modp)

n^{{p-1}\over 2}\equiv \pm1 \pmod p由欧拉准则

(np)≡np−12(modp)

\left(n\over p\right)\equiv n^{{p-1}\over 2}\pmod p其中

(np)

\left(n\over p\right)为勒让德符号。因为 x≡n12(modp)x \equiv n^{1\over2}\pmod p,所以有 xp−1≡np−12≡1(modp)x^{p-1}\equiv n^{{p-1}\over 2}\equiv 1 \pmod p。即

(np)=⎧⎩⎨⎪⎪1−10n在模p意义下是二次剩余n在模p意义下不是二次剩余n≡0(modp)

\left(\frac n p\right) =\left\{ \begin{array}{ll}1 & \text{$n$在模$p$意义下是二次剩余} \\-1 & \text{$n$在模$p$意义下不是二次剩余} \\0 & \text{$n\equiv 0\pmod p$} \end{array}\right.设

k=a2−n,ω=k√

k=a^2-n,\omega=\sqrt{k}则该方程的解为

x≡(a+ω)p+12(modp)

x\equiv (a+\omega)^{\frac {p+1} 2} \pmod p证明:若 kk是该模意义下的非二次剩余,则

wp−1=np−12=−1

w^{p-1}=n^{{p-1}\over 2}=-1同时:

(a+b)p≡ap+bp(modp)

(a+b)^{p}\equiv a^p+b^p\pmod p则

x21≡≡≡≡≡≡≡≡(a+ω)p+1(a+ω)p(a+ω)(ap+ωp)(a+ω)(ap−1a+ωp−1ω)(a+ω)(a−ω)(a+ω)a2−ω2a2−(a2−n)n(modp)

\begin{eqnarray} x_1^2 & \equiv & (a+\omega)^{p+1} \\& \equiv & (a+\omega)^p(a+\omega) \\& \equiv & (a^p+\omega^p)(a+\omega) \\& \equiv & (a^{p-1}a+{\omega}^{p-1}\omega)(a+\omega) \\& \equiv & (a-\omega)(a+\omega) \\& \equiv & a^2-\omega^2 \\& \equiv & a^2-(a^2-n) \\& \equiv & n\pmod p \end{eqnarray}另一解为

x2≡−x1(modp)

x_2\equiv -x_1\pmod p
如何找到这个 kk呢。因为非二次剩余的个数大约有一半,随机几次即可。
后面去实现了一下,发现要重新定义一个复数域Fp2\mathbb{F}_{p^2},然后就好啦。

struct Complex {ll r, i;Complex(ll _r = 0, ll _i = 0):r(_r), i(_i) {}inline Complex operator +(ll x) {return Complex((x + r) % P, i);}inline Complex operator *(Complex a) {ll rr = (a.r * r % P + w * a.i % P * i % P + P * 3) % P,ii = (a.i * r % P + a.r * i % P) % P;return Complex(rr, ii);}
};inline ll Qr(ll x, ll p) {if (Pow(x, (P - 1) / 2) == P - 1) return -1;if (Pow(x, (P - 1) / 2) == 0) return 0;ll a;Complex k(0, 1);while (true) {a = rand();if (Pow((a * a - x + P) % P, (P - 1) / 2) == P - 1) break;}w = (a * a - x + P) % P;return Pow(k + a, (P + 1) / 2);
}

[二次剩余]求解二次剩余相关推荐

  1. 二次剩余问题x的求解及代码实现(python)

    一.问题引入 二次剩余是数论基本概念之一.它是初等数论中非常重要的结果,不仅可用来判断二次同余式是否有解,还有很多用途.C.F.高斯称它为算术中的宝石,他一人先后给出多个证明. [1] 研究二次剩余的 ...

  2. 2019 牛客多校第9场 B Quadratic equation(二次剩余)

    题意: x + y = b(mod p) x * y = c(mod p) 题目给出b,c ,p = 1e9 + 7,求解x y 要求(0≤x≤y<p),若没有可行解,输出-1 -1 题解: x ...

  3. 非素数模下的二次剩余

    非素数模下的二次剩余 InstructionInstructionInstruction 二次剩余定义为,一个数aaa,如果不是ppp的倍数且模ppp同余于某个数的平方,则称 aaa为模ppp的二次剩 ...

  4. 学习笔记第五十节:原根相关与二次剩余

    正题 原根相关 定义 群:非空集合 G 上定义了一种二元运算,满足封闭性.结合 律.单位元.逆元. 环:非空集合 R 上定义了加法和乘法,在加法下构成交换 群,满足乘法结合律.分配律. 域:非零元素都 ...

  5. 数论基础:模奇素数的二次剩余 (1)

    注意: 本文讨论的是模奇素数的二次剩余 目前不打算写二次互反律,不易写明白 什么是二次剩余 求解模小素数的二次同余方程 求解模小素数的二次方程,只需要遍历 Zp⋆\mathbb{Z}_p^{\star ...

  6. 知识点 - 二次剩余

    知识点 - 二次剩余 解决问题类型: 求模意义下的平方根 一些公式推导有用 定义 q被称作模n的二次剩余quadratic residue 当且仅当存在x使得: x2=q(modn)x^2=q(mod ...

  7. 二次剩余与Cipolla算法

    二次剩余与Cipolla算法 若存在x,使得 x2≡a(modp)x^2\equiv a \pmod{p}x2≡a(modp) 成立且a不是p的倍数,则称a为模p的二次剩余. 下文只讨论p为奇素数的情 ...

  8. 二次剩余 数论 勒让德

    在数论中,特别在同余理论里,一个整数对另一个整数的二次剩余(英语:Quadratic residue)指的平方除以得到的余数. 当存在某个,式子成立时,称"是模的二次剩余" 当对任 ...

  9. 二次剩余推理及其求解过程

    定义: \quad给出一个式子x2≡n(modp)x^2≡n(mod p)x2≡n(modp),再给出nnn和ppp,如果能求得一个x满足该式子,即xxx满足x2=n+kp,k∈Zx^2=n+kp,k ...

最新文章

  1. 官宣!全球首富马斯克:创办这所“新大学”!
  2. python中unique_一个神奇的Python机器学习交互应用开放框架
  3. 你可能会用到的 Mock 小技巧
  4. 怎么抓python程序的包_如何在AWS上部署python应用程序
  5. 0到100速度测试软件,【图】到底如何完成 揭晓0-100公里/小时测试_汽车江湖
  6. 解决React Native unable to load script from assets index.android.bundle on windows
  7. android 手机号码显示加空格,Android实现输入手机号时自动添加空格
  8. Web开发人员应当知道的15个开源项目
  9. jupyter kernel_如何在Jupyter笔记本中运行Scala和Spark
  10. 【Kafka】KafkaConnection to 1002 was disconnected before the response was read
  11. 月结 sap_SAP运行物料账的常见错误
  12. 《Redis开发与运维》读书笔记一
  13. 计算经纬度距离工具类
  14. thinkphp前端显示被反编译详解
  15. android7 cooldual,酷派Cool1Dual(含JUI 7.1)|Cool1C 免解锁 Recovery ROOT 救砖视频
  16. adb wifi远程连接手机
  17. 线段树染色问题(例题为poj2777)
  18. 2021-03-10
  19. iOS 开发者账号续费后打印发票
  20. 如何通过视频推广让你的App一夜爆红

热门文章

  1. Neutrino协议发展规划
  2. Java各类包的工作
  3. IDC 首都在线 | 渲染算力云2.0深度解析
  4. linux中断初始化程序,Linux x86_64 内核中断初始化
  5. 中兴通讯重磅推出首款智能AI机顶盒
  6. ppt怎么导入html,PowerPoint2007从网页导入文本中的方法
  7. 大一学生Web课程设计 美食主题网页制作(HTML+CSS+JavaScript)-咖啡 6页
  8. dcl并列控件 lisp_CAD autolisp jjj-dcl-make函数
  9. php rewrite模块安装,Linux_Linux下Apache安装/增加mod_rewrite模块,如果你的服务器apache还没有安 - phpStudy...
  10. Query DSL - Terms Query