二次剩余 \(Cipolla\) 算法

概述

  • 大概就是在模 \(p\) 意义下开根号,如求解方程\(x^2\equiv n(mod\ p)\).
  • 这里只考虑 \(p\) 为素数的情况.若 \(p=2\) ,则\(x=0\ when\ n=0,x=1\ when\ n=1\).
  • 若 \(p​\) 为奇素数,定义勒让德符号:

\[
\lgroup\frac{n}{p}\rgroup =n^{\frac{p-1}{2}}
\]

  • 则根据欧拉准则,

  • 对于 \(\lgroup \frac{n}{p} \rgroup \equiv 1\) 的情况,我们随机取一个 \(a\) 使得 \(a^2-n\) 不为 \(p\) 的二次剩余,可证期望步数为 \(2\) .
  • 记 \(\omega=\sqrt{a^2-n}​\) ,定义一个新数域\(x+y\cdot\ \omega​\),类似于复数,只是单位复数为\(\omega​\).
  • 那么 \(x\equiv \pm (a+\omega)^{\frac{p+1}{2}}\ (mod\ p)\),据拉格朗日定理可知虚数部分系数为 \(0\) .
  • 简要论证,尝试倒推变形,

\[
x\equiv \pm (a+\omega)^{\frac{p+1}{2}}\\
x^2\equiv (a+\omega)^{p+1}\\
x^2\equiv (a+\omega)^p(a+\omega)
\]

  • 注意到 \((a+\omega)^p\) 可用二项式定理展开,\((a+\omega)^p\equiv \sum_{i=0}^{p}C_p^i a_i \omega ^{a-i}\ (mod\ p)\).
  • \(p\) 是个质数,.使用 \(Lucas\) 定理处理组合数,发现仅当\(i=0,i=n\)时组合数在模意义下才为非 \(0\) 的,仅计算\(i=0,i=n\),可得到\((a+\omega)^p\equiv a^p+\omega ^p\ (mod\ p)\).
  • 得到这个式子后,继续对上面的式子变形,

\[
x^2\equiv (a+\omega)^p(a+\omega)\\
x^2\equiv (a^p+\omega^p)(a+\omega)
\]

  • 注意到\(a^p\equiv a\) (费马小定理),而\(\omega ^p\equiv \omega * \omega^{p-1} \equiv \omega*(\omega ^2)^{\frac{p-1}{2}}\equiv \omega*(a^2-n)^{\frac{p-1}{2}}\equiv -\omega\).
  • 继续变形,

\[
x^2\equiv (a^p+\omega^p)(a+\omega)\\
x^2\equiv(a-\omega)(a+\omega)\\
x^2\equiv a^2-\omega^2\\
x^2\equiv a^2-(a^2-n)\\
x^2\equiv n\ (mod\ p).
\]

  • 这里的变形操作容易验证都是可逆的,可以一步一步推回去,就说明了有两个解,\(x\equiv \pm (a+\omega)^{\frac{p+1}{2}}\ (mod\ p)\).
  • 时间复杂度为\(O(log^2p)\).

二次剩余-Cipolla的更多相关文章

  1. 二次剩余Cipolla算法学习笔记

    对于同余式 \[x^2 \equiv n \pmod p\] 若对于给定的\(n, P\),存在\(x\)满足上面的式子,则乘\(n\)在模\(p\)意义下是二次剩余,否则为非二次剩余 我们需要计算的 ...

  2. 二次剩余 Cipolla算法

    欧拉准则 \(a\)是\(p\)的二次剩余等价于\(a^{\frac{p-1}{2}}\equiv 1\pmod p\),\(a\)不是\(p\)的二次剩余等价于\(a^{\frac{p-1}{2}} ...

  3. 二次剩余&&Cipolla

    目录 二次剩余 勒让德符号(legendre symbol) Cipolla's Algorithm. 代码 end 二次剩余 给定y和奇质数p,求x,使得\(x^2≡y(mod p)\) 勒让德符号 ...

  4. 【模板】【数论】二次剩余Cipolla算法,离散对数BSGS 算法

    Cipolla LL ksm(LL k,LL n) { LL s=1; for(;n;n>>=1,k=k*k%mo) if(n&1) s=s*k%mo; return s; } n ...

  5. URAL 1132 Square Root(二次剩余定理)题解

    题意: 求\(x^2 \equiv a \mod p\) 的所有整数解 思路: 二次剩余定理求解. 参考: 二次剩余Cipolla's algorithm学习笔记 板子: //二次剩余,p是奇质数 l ...

  6. xgzc— math 专题训练(二)

    费马小定理&欧拉定理 费马小定理: 如果\(p\)是一个质数,而整数\(a\)不是\(p\)的倍数,\(a^{p-1}\equiv1\pmod p\) 欧拉定理: 当\(a\)与\(n\)互质 ...

  7. 二次剩余定理及Cipolla算法入门到自闭

    二次剩余定义: 在维基百科中,是这样说的:如果q等于一个数的平方模 n,则q为模 n 意义下的二次剩余.例如:x2≡n(mod p).否则,则q为模n意义下的二次非剩余. Cipolla算法:一个解决 ...

  8. 二次剩余的判定及Cipolla算法

    二次剩余 ppp是奇素数.所有的运算都是在群Zp∗Z_{p}^{*}Zp∗​中的运算.方程x2=a≠0x^2=a \neq 0x2=a̸​=0问是否有解,以及解是什么?若有解,aaa就是模ppp的二次 ...

  9. 二次剩余从csdn

    欧拉准则 模\(p\)意义下,\(a\)是二次剩余等价于\(a^{\frac{p-1}{2}}\equiv 1\),\(a\)不是二次剩余等价于\(a^{\frac{p-1}{2}}\equiv -1 ...

随机推荐

  1. input输入框延时发送请求问题

    同样是面试遇到的问题,input输入框,怎么减少发送请求次数. 键盘抬起触发事件,首先清除定时器,再开启定时器.只要小于1s的连续输入,都会先把上一次定时器清除.停顿一秒后,开始执行请求事件(此处为c ...

  2. windows向github提交代码

    随便写的,留给自己看. 一.在github上注册并建立自己的仓库http://www.cnblogs.com/keZhenxu94/p/5288488.html 二.安装windows版本git界面工 ...

  3. Android Studio 3.0 及个版本下载和 gradle 各版本下载

    Android Studio 3.0 下载地址: 链接:http://pan.baidu.com/s/1jHVuOQi 密码:3pd0 Android Studio 3.0 包含了三大主要功能: 一套 ...

  4. LM3S之boot loader学习笔记-2

    LM3S之boot loader学习笔记-2 彭会锋 () 上一篇中介绍了bootloader的基础知识,对于bootloader的作用和如何编写bootloader也有了大概的了解了,这一篇主要讲解 ...

  5. Isolation Forest原理总结

    Isolation Forest(以下简称iForest)算法是由南京大学的周志华和澳大利亚莫纳什大学的Fei Tony Liu, Kai Ming Ting等人共同提出,用于挖掘异常数据[Isola ...

  6. 伪基站,卒于5G——本质上是基于网络和UE辅助的伪基站检测,就是将相邻基站的CI、信号强度等信息通过测量报告上报给网络,网络结合网络拓扑、配置信息等相关数据,对所有数据进行综合分析,确认在某个区域中是否存在伪基站

    伪基站,卒于5G from:https://www.huxiu.com/article/251252.html?h_s=h8 2018-07-05 21:58收藏27评论6社交通讯     本文来自微 ...

  7. Pycharm更换主题

    更换主题(jar包) 1. 下载皮肤主题(jar) 去 http://www.themesmap.com/ 选择自己喜欢的主题下载 2. 导入皮肤主题 导入方法:file–>Import Set ...

  8. mybatis定义拦截器

    applicationContext.xml <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlS ...

  9. linux中的/usr,/var,/opt目录详解

    转自:http://it.greenblogs.org/archives/2008/20113.shtml/ /usr文件系统  /usr 文件系统经常很大,因为所有程序安装在这里. /usr 里的所 ...

  10. CF910C

    题解: 首先考虑暴力不行 然后采用贪心 按位展开 然后注意不能有前缀0 代码: #include<bits/stdc++.h> using namespace std; ],ans; ], ...