首页 > 其他分享 >模为素数的二次剩余

模为素数的二次剩余

时间:2023-05-20 18:14:11浏览次数:47  
标签:剩余 frac 二次 pmod 是模 素数 模为 equiv

来自潘承洞、潘承彪《初等数论》,有删改。
由于 \(p=2\) 的情况过于显然,所以文中假定 \(p\) 是奇素数。


一、引入

假设 \(p\not\mid a\),二次同余方程的一般形式是 \(ax^2+bx+c\equiv 0\pmod p\),由于 \(\gcd(p,4a)=1\),所以可以表示为 \(4a(ax^2+bx+c)\equiv 0\pmod p\),所以知道 \((2ax+b)^2\equiv b^2-4ac\pmod p\)。然后令 \(y\equiv 2ax+b\pmod p\),原式变为 \(y^2\equiv b^2-4ac\pmod p\)。所以我么只需要讨论形如 \(x^2\equiv d\pmod p(1)\) 的同余方程。

二、定义

定义 1 设素数 \(p>2\),\(d\) 是整数,\(p\not\mid d\),如果同余方程 \((1)\) 有解,则称 \(d\) 是模 \(p\) 的二次剩余;否则称 \(d\) 是模 \(p\) 的二次非剩余

定理 1 在模 \(p\) 的一个既约剩余系中,恰有 \(\frac{p-1}{2}\) 个模 \(p\) 的二次剩余,同余方程 \((1)\) 的解数为 2。
证明:我们取 \(p\) 的绝对最小既约剩余系 \(-\frac{p-1}{2},-\frac{p-3}{2},…,-2,-1,1,2,…,\frac{p-3}{2},\frac{p-1}{2}\) 来讨论。由于 \(i^2\equiv (-i)^2\pmod p\),所以 \(d\) 是模 \(p\) 的二次剩余当且仅当 \(d\equiv 1^2,2^2,…,(\frac{p-1}{2})^2\pmod p\)。同时,对于 \(\forall i,j\in[1,\frac{p-1}{2}],i<j\),容易知道 \(j^2-i^2\equiv (j+i)(j-i)\pmod p\)。由于 \(0<j-i<j+i<p\),所以 \(i^2\not\equiv j^2\pmod p\)。所以在模 \(p\) 的一个既约剩余系中,模 \(p\) 的二次剩余恰好有 \(\frac{p-1}{2}\) 个。那么,模 \(p\) 的二次非剩余也有 \(\frac{p-1}{2}\) 个。
证毕

定理 2(Euler 判别法) 设素数 \(p>2\),\(p\not\mid d\),那么 \(d\) 是模 \(p\) 的充分必要条件是 \(d^{\frac{p-1}{2}}\equiv 1\pmod p\);\(d\) 是模 \(p\) 的充分必要条件是 \(d^{\frac{p-1}{2}}\equiv -1\pmod p\)。
证明:首先因为 \(\gcd(d,p)=1\),\(p\) 为素数,所以由费马小定理知,\(d^{p-1}\equiv 1\pmod p\),所以上述两个同余式有且仅有一式成立。
下证 \(d\) 是模 \(p\) 的二次剩余,的充分必要条件是 \(d^{\frac{p-1}{2}}\equiv 1\pmod p\)。
必要性:如果 \(d\) 是模 \(p\) 的二次剩余,那么我们知道,一定有满足 \(\gcd(x_0,p)=1\) 的 \(x_0\) 使得 \(x_0^2\equiv d\pmod p\),再次使用费马小定理,得出 \(d^{\frac{p-1}{2}}\equiv x_0^{p-1}\equiv 1\pmod p\)。
充分性:如果 \(d^{\frac{p-1}{2}}\equiv 1\pmod p\),那么由于 \(\gcd(d,p)=1\),所以对于任意的 \(x\in[1,p-1]\),必有唯一的 \(a_x\in[1,p-1]\) 满足 \(a_xx\equiv d\pmod p\)。如果 \(d\) 不是模 \(p\) 的二次剩余,那么我们知道所有的 \(a_x\ne x\),所以既约剩余系中的所有 \(p-1\) 个数就可以 \(a_x,x\) 作为一对,两两分完,分成 \(\frac{p-1}{2}\) 组。再用上 Wilson 定理,所以知道 \(d^{\frac{p-1}{2}}\equiv (p-1)!\equiv -1\pmod p\),矛盾!所以 \(d\) 一定是模 \(p\) 的二次剩余。
证毕

推论 3 -1 是模 \(p\) 的二次剩余的充分必要条件是 \(p\equiv 1\pmod 4\),当 \(p\equiv 1\pmod 4\) 时,\((\pm(\frac{p-1}{2})!)^2\equiv -1\pmod p\)。
证明:由定理 2 知,-1 是模 \(p\) 的二次剩余的充要条件是 \((-1)^{\frac{p-1}{2}}\equiv 1\pmod p\),所以得知 \(\frac{p-1}{2}\) 是个偶数。所以 \(p\equiv 1\pmod 4\)。由 Wilson 定理知,\(-1\equiv (p-1)!\equiv (-1)^{\frac{p-1}{2}}((\frac{p-1}{2})!)^2\pmod p\),所以得知 \(p\equiv 1\pmod 4\) 时,\((\pm(\frac{p-1}{2})!)^2\equiv -1\pmod p\)。
证毕

推论 4 设素数 \(p>2,p\not\mid d_1,p\not\mid d_2\),那么
\((i)\) 若 \(d_1,d_2\) 均为模 \(p\) 的二次剩余,则 \(d_1d_2\) 也是模 \(p\) 的二次剩余。
\((ii)\) 若 \(d_1,d_2\) 均为模 \(p\) 的二次非剩余,则 \(d_1d_2\) 是模 \(p\) 的二次剩余。
\((iii)\) 若 \(d_1\) 是模 \(p\) 的二次剩余,\(d_2\) 是模 \(p\) 的二次非剩余,则 \(d_1d_2\) 模 \(p\) 的二次剩余。
由 Euler 判别法易知(\((d_1d_2)^{\frac{p-1}{2}}=d_1^{\frac{p-1}{2}}·d_2^{\frac{p-1}{2}}\))。

标签:剩余,frac,二次,pmod,是模,素数,模为,equiv
From: https://www.cnblogs.com/qwq-qaq-tat/p/17417423.html

相关文章

  • 【数论】Rust使用Miller-Rabin primality test判别素数
    题目地址https://ac.nowcoder.com/acm/contest/57677/A代码usestd::io::{self,BufRead,Write};fnis_prime_triival(n:i128)->bool{ifn<=1{returnfalse;}ifn==2{returntrue;}ifn%2==0{retur......
  • 初等数论——素数,逆元,EXGCD有关
    初等数论素数定义设整数\(p\ne0,\pm1\)。如果\(p\)除了平凡约数以外没有其他约数,那么称\(p\)为素数(不可约数)。若整数\(a\ne0,\pm1\)且\(a\)不是素数,则称\(a\)为合数。——————OIWiki素数的判定(素性测试)如何判断一个数\(x\)是不是质数?很显然我们可......
  • 使用教程 | 基于TSMaster如何实现LIN RBS 剩余总线仿真
    本文导读RBS全称是:residualbussimulation,也就是所谓的剩余总线仿真。主要是基于车载网络数据库,如CAN/LIN/FlexRay/以太网数据库,仿真该网络内部各个节点的通讯行为。本文主要讲解TSMaster中LINRBS的操作流程。本文目录:一、硬件连接准备二、TSMaster软件LINRBS操作流程1.......
  • 同余类与剩余系
    来自潘承洞、潘承彪《初等数论》,有删改。定义1(同余类)把全体整数分为若干个两两不相交的集合,使得\((i)\)在同一个集合中的任两个数模\(m\)一定同余;\((ii)\)在两个不同集合中的任两个数模\(m\)一定不同余。每一个这样的集合称为模\(m\)的同余类。我们以\(r\bmodm\)......
  • 判断 101-200 之间有多少个素数,并输出所有素数。
    判断101-200之间有多少个素数,并输出所有素数。#如果一个数N不是素数,对于从2到(N-1)的所有数,N依次除以2到(N-1)的所有数,一定会出现余数≠0#取出101-200之间的所有素数,放到一个列表中,可以计算出素数的个数并输出所有素数primenum_list=[]fornumberinrange(101,201):......
  • ES6剩余参数
    ES6剩余参数arguments的缺陷:如果和形参配合使用,容易导致混乱从语义上,使用arguments获取参数,由于形参缺失,无法从函数定义上理解函数的真实意图ES6的剩余参数专门用于收集末尾的所有参数,将其放置到一个形参数组中。语法:function(...形参名){}举个例子functionsum(........
  • 密码工程-小素数
    密码工程-小素数20201331黄文刚任务详情在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务参考《密码工程》p107伪代码基于Eratosthenes算法实现intSmallPrimeList(intn,int*plist,int*len),其中plist返回素数列表,len返回列表长度2写出测试代码,至少包括......
  • 密码工程—小素数
    一、任务详情在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务参考《密码工程》p107伪代码基于Eratosthenes算法实现intSmallPrimeList(intn,int*plist,int*len),其中plist返回素数列表,len返回列表长度(5’)2写出测试代码,至少包括n=2,n=你的四位学号,n>2^2......
  • 密码工程-小素数
    在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务参考《密码工程》p107伪代码基于Eratosthenes算法实现intSmallPrimeList(intn,int*plist,int*len),其中plist返回素数列表,len返回列表长度(10’)2写出测试代码,至少包括n=2,n=你的四位学号,n>2^20次方的测试代......
  • 密码工程-小素数
    密码工程-小素数0.在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务1.参考《密码工程》p107伪代码基于Eratosthenes算法实现intSmallPrimeList(intn,int*plist,int*len),其中plist返回素数列表,len返回列表长度(5’)2写出测试代码,至少包括n=2,n=你的四位......