(转载)二次剩余(知识总结+板子整理)

article/2025/10/29 13:47:48

思路来源

https://blog.csdn.net/kele52he/article/details/78897187(二次剩余)

https://blog.csdn.net/stevensonson/article/details/85845334(二次剩余)

https://blog.csdn.net/skywalkert/article/details/52591343?locationNum=3&fps=1(Cipolla定理、二次剩余、三次剩余)

https://www.cnblogs.com/nbwzyzngyl/p/8469035.html(扩域、二次域)

https://blog.csdn.net/qq_24451605/article/details/45093911?locationNum=1(欧拉判别准则)

 

知识点整理

二次剩余,现在的研究范围,只在p为奇素数下进行

若存在1\leq x< p使得x^{2}\equiv n(mod\ p),则称n是模p的二次剩余

二次剩余的充要条件,勒让德记号余数为1

充分性:

d,x属于[1,p-1],显然与p互质;

欧拉判别准则,这里其实就是费马小定理

必要性:

用原根可以证明d,可以表示为d=a^{2i}的形式,从而得证

二次非剩余的充要条件,勒让德记号余数为-1

不是二次剩余,则若ij=n(mod p),i和j一定不相同,

根据扩展欧几里得,

把ij%p=n,转化成 ij+pq=n,

由于gcd(i,p)=1,所以 ij+pq=1肯定有解,

因为n是1的倍数,所以ij+pq=n肯定有解

所以,j=j0+k*p,且j0≠0,故必有且只有一个解j落在[1,p-1]内

n整除p时,勒让德记号余数为0

由勒让德记号定义,显然成立

二次剩余的解n,恰有\frac{p-1}{2}

由于u和v的取值[1,p-1],所以u-v(不妨u>v)的差必在[1,p-2]之间,与素数p互质,

且u+v取值[2,2p-2],故u+v==p,说明每对和为p的值有唯一的平方值

不同对(u,v)(w,x)之间若平方相同,设v和w(w≠u)相同,

则必有u+v==p,v+w==p,w+x==p,这推得u==w,与w≠u矛盾,故平方值不同

故有\frac{p-1}{2}个解,每个二次剩余恰有两个解,且这两个解和为p

 

 

Cipolla定理(求n给定时的一组二次剩余)

由于满足\binom{w}{p}=-1的解有\frac{p-1}{2}个,选中的概率是\frac{1}{2},所以期望为2步

由于p是质数,所以在C_{p}^{i}的展开式中,p和分母任意项互质,从而p不可被约掉,使C_{p}^{i}为p的倍数

x是解,那么p-x显然是解,代入(p-x)^2=p^2-2*p*x+x^2\equiv x^2(mod\ p)即得

所以,求了一个,即相当于求了另一个

 

扩域(类似复数域)

实际求(a+\sqrt{a^{2}-n})^{\frac{p+1}{2}}时,由于w=\sqrt{a^{2}-n}为非二次剩余,mod p意义下勒让德符号为-1

故可将与复数域联系,视为复数域中的i,进行复数域(a+i)的快速幂的运算,

实部单算,虚部单算,称其为扩域,只是这里w^{2}=a^{2}-n,而非-1

由拉格朗日定理知,最终(a+\sqrt{a^{2}-n})^{\frac{p+1}{2}}的虚部为0(不懂)

板子

#include<bits/stdc++.h>
using namespace std; 
typedef long long ll;ll p,w;struct field{//扩域 x实部 y虚部ll x,y;field(ll a=0,ll b=0){x=a;y=b;}
};field operator*(field a,field b){return field(1ll*a.x*b.x%p+1ll*a.y*b.y%p*1ll*w%p,1ll*a.x*b.y%p+1ll*a.y*b.x%p);}ll ran(){//随机数种子static ll seed=23333;return seed=((((((ll)seed^20030927)%p+330802)%p*9410)%p-19750115+p)%p^730903)%p;
}ll pows(ll a,ll b){ll base=1;while(b){if(b&1) base=1ll*base*a%p;a=1ll*a*a%p;b/=2;}return base;
}field powfield(field a,ll b){//扩域快速幂field base=field(1,0);while(b){if(b&1) base=base*a;a=a*a;b/=2;}return base;
}ll legander(ll x){//勒让德记号 
//返回-1时x不为二次剩余
//返回1时x为二次剩余
//返回0时p整除xll a=pows(x,(p-1)/2);if(a+1==p) return -1;return a;
}ll surplus(ll x){//求b.x*b.x==x(mod p)时的b.x
//即给定x,求x为二次剩余时的解b.x
//x为非二次剩余时返回-1 while(1)期望次数两次ll a;if(!x)return 0;if(legander(x)==-1) return -1;while(1){a=ran()%p;w=((1ll*a*a-x)%p+p)%p;if(legander(w)==-1) break;}field b=field(a,1);b=powfield(b,(p+1)/2);return b.x;
}
int main()
{return 0;
}

 

 

 

 


http://chatgpt.dhexx.cn/article/9p04T9cR.shtml

相关文章

二次同余方程(二次剩余)

文章目录 一、介绍1.定义2.定理 二、判别1.勒让德符号&#xff08;Legendre Symbol&#xff09;2.欧拉判别准则&#xff08;Eulers criterion&#xff09;(1)内容(2)证明(3)注意 三、 x 2 ≡ n ( m o d x^2≡n(mod x2≡n(mod p ) p) p)——奇波拉算法&#xff08;Cipollas alg…

二次剩余 数论 勒让德

在数论中&#xff0c;特别在同余理论里&#xff0c;一个整数对另一个整数的二次剩余&#xff08;英语&#xff1a;Quadratic residue&#xff09;指的平方除以得到的余数。 当存在某个&#xff0c;式子成立时&#xff0c;称“是模的二次剩余” 当对任意&#xff0c;不成立时&…

二次剩余

title: 二次剩余 date: 2019-08-27 00:10:46 tags: 数论 一、定义&#xff08;Quadratic_residue&#xff09; 一个整数X对另一个整数p的二次剩余 d 注意这边的取模是 X 2 X^2 X2 和 d 都要对p取模噢 eg. 3 2 ≡ 2 ( m o d 7 ) 3^2≡2 (mod\ 7) 32≡2(mod 7),我们称 2是7的…

win10增加美式键盘

仅为做记录 我的系统为win10专业版 1809 首先进入语言首选项 选择添加语言 选择英语&#xff08;美国&#xff09; 之后选择拼写、键入和键盘设置 在输入的最下面选择高级键盘设置 选择语言栏选项 更改按键顺序选项中可以修改切换语言的快捷键 本质上是切换语言种类而不是输…

删除Win10英语国际键盘的方法

按下winR打开运行&#xff0c;键入regedit点击确定打开注册表 在注册表中依次展开&#xff1a;HKEY_CURRENT_USER\Keyboard Layout\Preload 改成下面的样子&#xff1a; 这个表示默认输入法是英语-美式键盘&#xff0c;接下来是中文-美式键盘。 注1&#xff1a;可以右键创…

win10添加美式键盘_戴尔笔记本win10降win7教程

现在大多数人电脑操作系统都是win10&#xff0c;但是很多人由于各种原因&#xff0c;比如部分软件限制&#xff0c;还是不得不继续使用win7操作系统&#xff0c;有些朋友自己安装win7的时候会发现各种问题&#xff0c;始终安装不上&#xff0c;接下来我整理下win10降win7的办法…

超详细window10添加美式键盘

转自https://blog.csdn.net/qq_41139830/article/details/80500841 打开控制面板->添加语言 然后点击图中的添加语言 选择英语 选择英语(美国) 然后回到下图这个界面&#xff0c;就会发现多出了美式键盘 &#xff08;如果美式键盘在上面&#xff0c;就要将其下移&#xff0…

win10切换输入法快捷键_软件快捷键失灵,可能是你没有安装美式键盘

工程类用到的软件&#xff0c;比如Altium designer、keil、ccs、Quartus ii等基本都是老外开发的&#xff0c;他们的工作的键盘模式都是美式键盘&#xff0c;快捷键也相应的是美式键盘下的快捷键&#xff0c;这就导致我们自己在使用这些软件时&#xff0c;要注意选择键盘类型&a…

Win10怎么设置默认输入法为美式英文键盘

默认的输入法就是进入系统后一打字就是你想要的那一种输入法。WIN10的默认输入法是微软拼音输入法&#xff0c;它是一个中文的输入法&#xff0c;用起来不是很方便。 相对来说&#xff0c;大部分人都是习惯输入法默认的状态是英文的。这样可以在输入网址&#xff0c;或是在码字…

win10添加美式键盘_在win10中使用多种键盘布局,你知道如何操作吗

Windows10操作系统允许用户使用多种键盘布局&#xff0c;用户可以在初始设置过程中添加一个或多个键盘布局(也称为“开箱即用”体验(OOBE))。但是&#xff0c;如果你配置了错误的布局&#xff0c;或者以后需要键入不同的语言&#xff0c;则可以随时添加和更改键盘配置。 一般情…

Win10添加美式键盘

为什么80%的码农都做不了架构师&#xff1f;>>> WIN8也可以这实现&#xff01; ###在“中文”内添加美式键盘需要修改注册表。 打开CMD&#xff0c;输入 regedit 打开注册表编辑器&#xff1b; 转到 HKEY_CURRENT_USER/Keyboard Layout/Substitutes&#xff0c; 新…

win10添加美式键盘_WIN10系统必做的6个优化,优化完电脑性能飙升。

现在越来越多的人开始用WIN10系统了&#xff0c;而对于习惯了使用WIN7系统的用户来说&#xff0c;刚刚开始接触WIN10系统&#xff0c;确实会有点不适应&#xff0c;特别是使用过程中一会儿弹出一个对话框&#xff0c;一会儿一个什么通知的&#xff0c;不厌其烦&#xff0c;接下…

win10添加美式键盘_Win10自带的这6款软件,90%的人都不知道,但个个都好用到爆!...

什么&#xff0c;微软还出过我不知道的软件&#xff1f; 你别不信&#xff0c;这篇文章三顿就要给大家分享6个微软官方出品的软件神器&#xff0c;而且全都无需安装无需下载&#xff0c;它们就藏在你的操作系统里&#xff0c;一起来看看吧&#xff01; 微软拼音输入法 一说到输…

win10添加美式键盘_Windows10添加中文美式键盘,传统语言栏,采用ctrl+shift切换输入法...

Windows10添加中文美式键盘&#xff0c;采用ctrlshift切换输入法 用XP和Windows 7习惯后 用Windows 10 发现切换输入法快捷键变了&#xff0c;变成Windows键空格&#xff0c;现在觉得不适应&#xff0c;遂改回来。 而且还有一个很蛋疼的问题&#xff0c;这个在Windows8时代就有…

WIn11多出美式键盘如何删除

一、操作步骤 1.进入设置页 右键点击左边底部的输入法处&#xff0c;点击更多键盘设置 2.进入语言和区域添加语言 进入到如图所示页面&#xff0c;点击添加语言 添加语言后才可以删除键盘 3.安装英语(美国)语言 搜索到以后点击下一步&#xff0c;可以不选手写等功能安装&…

如何彻底删除windows10自带的美式键盘

1.先左键点击右下角的输入法&#xff0c;然后在点击语言首选项 2.进入语言设置&#xff0c;选择添加语言 3.在搜索框中输入english&#xff0c;下拉滚动条选择 英语&#xff08;美国&#xff09;English(United States)选项&#xff0c;然后点击下一页 4.只选择安装语言包即…

win10解决已禁用输入法和隐藏中文简体美式键盘

环境 win10 21h1 win10解决已禁用输入法 设置->时间和语言->语言->拼写、键入和键盘设置->高级键盘设置隐藏中文简体美式键盘 reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\CTF\HiddenDummyLayouts /v 00000804 /t REG_SZ /d 00000804参考文章 https://soci…

有效删除Win10英语(美式键盘)输入法

原文转载自百度经验&#xff0c;作者ID砸牛顿的苹果&#xff0c;原文链接https://jingyan.baidu.com/article/e4511cf39d7c382b855eaf62.html。 1.进入语言选项以后&#xff0c;默认英文键盘是无法删除的。我们需要添加一个英文语言包才可以删除&#xff0c;点击添加语言。 2…

计算机怎样设置默认美式键盘,完美:如何在win10系统中将默认输入法设置为美式键盘...

我相信朋友在操作计算机系统时会遇到很多问题. 将win10系统的默认输入法设置为美式键盘非常普遍. 我的朋友和我的朋友已经遇到了win10系统. 将美式键盘的默认输入法设置很多次&#xff0c;因此&#xff0c;我编写了一个更简单的设置教程&#xff0c;用于在win10系统中将美式键盘…

计算机考试怎样删除美式键盘,Win10怎么把美式键盘删除_Win10彻底删除eng美式键盘?-192路由网...

问&#xff1a;Win10怎么把美式键盘彻底删除掉&#xff1f;我想把Win10系统自带的美式键盘输入法删除掉&#xff0c;应该怎么操作&#xff1f; 因为用不到Win10自带的美式键盘输入法&#xff0c;一般都是用搜狗输入法输入中文的嘛&#xff0c;这个输入英文的输入法根本就用不到…