二次剩余 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(\log^2p)\)。

原文地址:https://www.cnblogs.com/utopia999/p/9741050.html

时间: 2024-10-03 05:38:48

二次剩余 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算法入门到自闭

二次剩余定义: 在维基百科中,是这样说的:如果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

Cipolla算法学习小记

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

二次剩余&&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\equ

【数论】【二次剩余】【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

常用/常考算法总结

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

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}$,然后?然后会点初中数竞,或者数感好会因式分解就能看出

二次剩余

今天要讨论的问题是解方程,其中是奇质数. 引理: 证明:由费马小定理, 引理:方程有解当且仅当 定理:设满足不是模的二次剩余,即无解,那么是二次 剩余方程的解. 证明:由,前面的等号用二项式定理和,后面的等 号用了费马小定理和是模的二次非剩余.然后 在算法实现的时候,对的选择可以随机,因为大约有一半数是模的二次非剩余,然后快速幂即可. 接下来我们来解另一个二次同余方程的解,其中,并且是奇质数.方法如下 先求出方程的一个解,那么进一步有 我们知道 那么也就是说 可以证明和,那么最终得到 这里由于不

算法分级

简单的模拟,简单的模板,极为简单的数据结构,极为简单的技巧. 简单的贪心/动态规划,简单的技巧,计算几何题,倍增,01分数规划,一般的背包,一般的期望题,一般的动态规划优化,简单的数论/矩阵,矩阵树定理,一般的莫比乌斯反演,量产数据结构,简单的分块/莫队,一般的字符串,简单的网络流,简单的图论. 带权二分,二进制分组,一般的贪心/动态规划,决策单调性优化,虚树,斯坦纳树,原根,二次剩余,欧拉函数,一般的数论/矩阵,简单的计数,生成函数,博弈论,洲阁筛/Min_25筛,困难的分治,KD树,一般的分