二次剩余

给定y和奇质数p,求x,使得\(x^2≡y(mod p)\)

勒让德符号(legendre symbol)

以前看视频的截图
求解\(x^2\equiv a(mod\ p)\)时,我们可用勒让德符号来判定他是否有解
(前提,p必须为奇素数)
\(\begin{pmatrix} \frac{a}{p} \end{pmatrix}=\begin{cases}0 (a\equiv 0(mod\ p))\\1(a\%p意义下是二次剩余)\\-1(a\%p意义下是二次非剩余)\end{cases}\)
有时为了印刷上的方便,会写成\((a|p)\)
0认为是特殊情况,这里不过分讨论

这里只说明第ii条,因为其他的都很显然(或者看完ii条之后),iii说明只他是个完全积性函数

公式\((a|p)=a^{\frac{p-1}{2}}(mod\ p)\)

也许还可以叫欧拉判别法
首先证明\(a^{\frac{p-1}{2}}(mod\ p)=1或-1\)
\(a^{p-1}-1=(a^{\frac{p-1}{2}}+1)(a^{\frac{p-1}{2}}-1)\equiv 0 (mod\ p)\)
显然,\(a^{\frac{p-1}{2}}(mod\ p)只有=1或-1\)时,才可能成立

a为%p意义下的二次剩余时\(a^{\frac{p-1}{2}}\equiv 1(mod\ p)\)
\(x^{2}\equiv a(mod\ p)\)也可以说为\(x\equiv a^{\frac{1}{2}}\equiv x^{p-1}(mod\ p)\)
而费马小定理又可以得到\(x^{p-1}\equiv 1(mod\ p)\)
存在x

a为%p意义下的二次非剩余时\(a^{\frac{p-1}{2}}\equiv -1(mod\ p)\)
也就是\(x^{p-1}\equiv -1(mod\ p)\)
而费马小定理又可以得到\(x^{p-1}\equiv 1(mod\ p)\)
所以不存在x

结论1

1到\(p-1\)中有\(\frac{p-1}{2}\)个勒让德符号为1,\(\frac{p-1}{2}\)个勒让德符号为-1
在%p意义下,a,P−a平方的结果是一样的,1 到 P−1的平方就会有\(\frac{p-1}{2}\)个互不相同的数,剩下的就不是二次剩余

结论 2

\((a+b)^p≡a^p+b^p (Mod p)\)
证明:直接展开二项式定理,因为p是质数,除了i=0和p项,其他项分子的p分母都消不掉,会被模成0,剩下\(a^p+b^p\)

Cipolla's Algorithm.

求解\(x^2≡y(mod p)\)时
不断随机a,使得\(\begin{pmatrix} \frac{a^2-y}{p} \end{pmatrix}=-1\)
结论1可以知道,随机一两次就能找到
令\(w=\sqrt{a^2-y},x=(a+w)^{\frac{p+1}{2}}\)

结论3 \(w^p\equiv -w\)

证明:\(w^p\equiv w^{p-1}*w\equiv (a^2-y)^{\frac{p-1}{2}}*w\equiv -w\)
\(x^2\equiv (a+w)^{p+1}\)
\(\ \ \ \ \equiv (a+w)^{p}(a+w)\)
结论2可知
\(\ \ \ \ \equiv (a^p+w^p)(a+w)\)
结论3又知
\(\ \ \ \ \equiv(a^{p-1}*a+w^{p-1}*w)(a+w)\)
\(\ \ \ \ \equiv(a-w)(a+w)\)
\(\ \ \ \ \equiv a^2-w^2\)
\(\ \ \ \ \equiv y\)
可w这个虚部咋计算,根据拉格朗日定理,虚部系数为0

代码

咕咕

end

太多摘抄qwq
主要参考https://blog.csdn.net/L_0_Forever_LF/article/details/79052135
wiki的图片很棒
附带一个题,不过没大有联系
求1000位数是否是完全平方数,yes or no
用几个模数多试几次,再勒让德符号判定一下是否有解

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

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

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

  2. 二次剩余-Cipolla

    二次剩余 \(Cipolla\) 算法 概述 大概就是在模 \(p\) 意义下开根号,如求解方程\(x^2\equiv n(mod\ p)\). 这里只考虑 \(p\) 为素数的情况.若 \(p=2\ ...

  3. 二次剩余 Cipolla算法

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

  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. 解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集

    character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. characte ...

  2. Lua之math

    Lua之math函数: 转载请注明出处:http://www.cnblogs.com/jietian331/p/8032555.html abs 取绝对值 math.abs(-15) 15 acos ...

  3. Lua之table

    Lua table(表) 参考:http://www.runoob.com/lua/lua-tables.html table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字.字典 ...

  4. Rpgmakermv(12) gacha插件系列

    很有趣的插件,可以做扭蛋啦,抽奖啦之类的东西.... 简单的示范: a.开始抽奖画面: b.抽奖中 c.随机得到物品 d.查看收集图鉴 e.图鉴内容 1.gacha 作用: get the item ...

  5. c++引用和指针的彻底理解

     ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用是某块内存的别名.  ★ 区别: 1. 指针是一个实体,而引用仅是个别名: 2. 引用使用时无需解引用(*),指 ...

  6. Spring源码阅读(七)

    这一讲主要分析bean注册过程中各种初始化方法回调的执行逻辑(initializeBean) /** * Initialize the given bean instance, applying fa ...

  7. tensorflow学习2-线性拟合和神经网路拟合

    线性拟合的思路: 线性拟合代码: import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #%%图形绘制 ...

  8. MongoDB With Spark遇到的2个错误,不能初始化和sample重复的key

    1.$sample stage could not find a non-duplicate document while using a random cursor 这个问题比较难解决,因为我用mo ...

  9. AtCoder Beginner Contest 087 (ABC)

    A - Buying Sweets 题目链接:https://abc087.contest.atcoder.jp/tasks/abc087_a Time limit : 2sec / Memory l ...

  10. 图像处理基础---RGB图 灰度图 索引图 调色板

    (1)二进制图 在二进制图中,像素的取值为两个离散数值0或1中的一个,0代表黑色,1代表白色 例 A=[0 0 1;1 1 0; 0 0 1];>> imshow(A,'InitialMa ...