二次剩余&&Cipolla

目录

  • 二次剩余
  • 勒让德符号(legendre symbol)
  • Cipolla‘s Algorithm.
  • 代码
  • end

二次剩余

给定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
用几个模数多试几次,再勒让德符号判定一下是否有解

原文地址:https://www.cnblogs.com/dsrdsr/p/10354942.html

时间: 2024-08-01 20:09:25

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

二次剩余-Cipolla

二次剩余 \(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} \rgro

二次剩余 Cipolla算法

欧拉准则 \(a\)是\(p\)的二次剩余等价于\(a^{\frac{p-1}{2}}\equiv 1\pmod p\),\(a\)不是\(p\)的二次剩余等价于\(a^{\frac{p-1}{2}}\equiv -1\pmod p\). Cipolla 若\(a^2-n\)不是\(p\)的二次剩余,则\(p\)的二次剩余为\((a+\sqrt{a^2-n})^\frac{p+1}{2}\). 因此我们随机\(a\)即可.\(\sqrt{a^2-n}\)的计算用复数. 时间复杂度约为\(O(\l

常用/常考算法总结

转自tangjz的博客... 基础算法 模拟 搜索 广度优先搜索(BFS) 优化:双向BFS 深度优先搜索(DFS) 优化:折半DFS 迭代加深搜索(IDS) 启发式搜索(Astar) 优化:IDAstar 优化:剪枝.位运算 排序 冒泡排序/选择排序 基数排序/桶排序 计数排序 插入排序/希尔排序 快速排序 归并排序/求逆序对数 堆排序 贪心 分治 二分/三分/n分 cdq分治 倍增/ST 离散化 二分答案 快速幂/十进制快速幂 基础数学 数列求和 泰勒展开 矩阵 矩阵乘法 高斯消元 判断线性

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

二次剩余定义: 在维基百科中,是这样说的:如果q等于一个数的平方模 n,则q为模 n 意义下的二次剩余.例如:x2≡n(mod p).否则,则q为模n意义下的二次非剩余. Cipolla算法:一个解决二次剩余强有力的工具,用来求得上式的x的一个算法. 需要学习的数论及数学基础:勒让德符号.欧拉判别准则和复数运算. 勒让德符号:判断n是否为p的二次剩余,p为奇质数. 欧拉定理为xφ(p)≡1(mod p) 当p为素数时,可知φ(p)=p-1,转化为xp-1≡1(mod p) 开根号后为 x(p−1

【数论】【二次剩余】【map】hdu6128 Inverse of sum

部分引用自:http://blog.csdn.net/v5zsq/article/details/77255048 所以假设方程 x^2+x+1=0 在模p意义下的解为d,则答案就是满足(ai/aj) mod p = d的数对(i,j)的数量(i<j). 现在把问题转化为解这个模意义下的二次方程. x^2+x+1=0 配方:x^2+x+1/4+3/4=0 (x+1/2)^2+3/4=0 同乘4:(2x+1)^2+3=0 即(2x+1)^2=-3 (mod p) 换句话说,我们必须保证-3+p是p

HDU6128 二次剩余/二次域求二次剩余解/LL快速乘法取模

LINK 题意:求满足模p下$\frac{1}{a_i+a_j}\equiv\frac{1}{a_i}+\frac{1}{a_j}$的对数,其中$n,p(1\leq n\leq10^5,2\leq p\leq10^{18})$ 思路:推式子,两边同乘$(a_i + a_j)^3$,得$a_i^2+a_j^2 \equiv {a_i·a_j} \mod{p}$,进一步$a_i^2+a_j^2+a_i·a_j\equiv {0} \mod{p}$,然后?然后会点初中数竞,或者数感好会因式分解就能看出

Cipolla算法学习小记

转自:http://blog.csdn.net/doyouseeman/article/details/52033204 简介 Cipolla算法是解决二次剩余强有力的工具,一个脑洞大开的算法. 认真看懂了,其实是一个很简单的算法,不过会感觉得出这个算法的数学家十分的机智. 基础数论储备 二次剩余 首先来看一个式子x2≡n(modp),我们现在给出n,要求求得x的值.如果可以求得,n为mod p的二次剩余,其实就是n在mod p意义下开的尽方.Cipolla就是一个用来求得上式的x的一个算法.

Codechef:Fibonacci Number/FN——求通项+二次剩余+bsgs

题意 定义 $F_n$ 为 $$F_n = \left\{\begin{matrix}0, n=0\\ 1, n=1 \\F_{n-1} + F_{n-2}, n > 1\end{matrix}\right.$$ 现给你一个素数 $p$ 和一个非负整数 $C$,你需要最小的非负整数 $n$,使得 $F_n \equiv C (mod \ p)$. 分析 因为题目保证 $p \ mod \ 10$ 是一个完全平方数,也就是说 $p \ mod \ 5$ 等于1或-1,即5是模$p$ 的二次剩余(据

ZOJ 3774 二次剩余

LINK 题意:简单粗暴,求菲波那契数列每个数的m次的前n项和模1e9+7 思路:斐波那契通项式, 注意到有很多根号5,求二次剩余为5模1e9+7的解,显然我们可以直接找一个(383008016),然后拿来替代根号5,然后优化下,把中括号中共轭的两部分预处理下,然后由于是外部的一个指数m,从1枚举到m,来求二项式定理的每项系数,再用个逆元就好了.人家的校赛题( /** @Date : 2017-03-18-15.39 * @Author : Lweleth ([email protected])