授课老师:ybx、chh。

授课时间:2024/3/8。

授课内容纲要:勒让德符号及其性质(欧拉准则,高斯引理,二次互反律)。

勒让德符号概括

好像在 OI 和 MO 当中都挺有用的。

勒让德符号的定义

假设 \(p\) 为奇质数,\(a\in U_p\)(\(U_p=\{1,2,\dots,p-1\}\)),则:

\[\left(\dfrac ap\right)=\begin{cases}1&\text{exist } x\in U_p,x^2\equiv a\pmod p \\-1& \text{otherwise}\end{cases}
\]

勒让德符号的性质

欧拉准则

\[\left(\dfrac ap\right)\equiv a^{\frac{p-1}{2}}\pmod p
\]

证明:如果存在 \(x^2\equiv a\pmod p\),那么 \(a^{\frac{p-1}{2}}\equiv x^{p-1}\equiv 1\pmod p\)。我们知道 \(a^{\frac{p-1}{2}}\equiv 1\pmod p\) 这个方程在 \(\bmod p\) 意义下只有 \(\dfrac{p-1}{2}\) 个根,刚好就是所有的 \(x^2\pmod p\)。

QED。

通过欧拉准则,在 OI 中可以使用 \(\mathcal O(\log p)\) 的算法来解勒让德符号,但是欧拉准则使用情况在 MO 中并不是太理想。

【例题】求解 \(\left(\dfrac{-1}{p}\right)\)。

解答:\(\left(\dfrac{-1}{p}\right)\equiv(-1)^{(p-1)/2}\)。所以如果 \(p\equiv 1\pmod 4\) 那么 \(-1\) 是二次剩余,如果 \(p\equiv3\pmod 4\) 那么不是。

【例题】证明 \(4n+1\) 型质数是无穷的。

解答:反之,记为 \(p_1,p_2,\dots,p_n\)。取 \(m=(2p_1p_2\dots p_n)^2+1\),取 \(m\) 任意质因子 \(p\)。

由于 \(p|m\),得到 \(-1\equiv (2p_1p_2\dots p_n)^2\pmod p\),也就是 \(-1\) 为 \(\bmod p\) 意义下的二次剩余,得到 \(p\equiv1\pmod 4\)。然而 \(p\not\in\{p_1,p_2,\dots,p_n\}\),矛盾!


在进入高斯引理之前先引入几个记号:

定义 \(P_p=\{1,2,\dots,\dfrac{p-1}{2}\}\),\(N_p=\{-1,-2,\dots,-\dfrac{p-1}{2}\}\)。定义集合的数乘,据此定义得到 \(N_p=(-1)P_p\)。

高斯引理

假设 \(p\) 为奇质数,\(a\in U_p\),则:

\[\left(\dfrac ap\right)=(-1)^\mu,\mu=|aP\cap N|
\]

证明:假设 \(x\not = y\in P\),得到 \(xa\not\equiv±ya\pmod p\),进而:\(aP\) 可以表示成二元集合 \(\{±1\},\{±2\},\dots,\{±\dfrac{p-1}{2}\}\),每个集合选一个元素的集合。

形式化的,\(aP=\{\epsilon_ii|i\in P,\epsilon_i\in\{-1,1\}\}\)。

考虑算两次 \(\prod_{i\in aP}i\)。

第一次:\(\prod_{i\in aP}i=\prod_{i\in P}ai=a^{\frac{p-1}{2}}\left(\dfrac{p-1}{2}\right)!\)。

第二次:\(\prod_{i\in aP}i=\prod\epsilon_i\times\left(\dfrac{p-1}{2}\right)\)。

得到 \(\prod \epsilon_i\equiv a^{\frac{p-1}{2}}\pmod p\)。

显然 \(\prod \epsilon_i\) 是 \(1\) 还是 \(-1\) 取决于其中 \(-1\) 的数量,也就是 \(\mu\) 的奇偶性。

QED。

通过欧拉准则,我们可以简单的手膜 \(a\) 比较小的二次剩余。

【例题】证明 \(\left(\dfrac 2p\right)=(-1)^{\frac{p^2-1}{8}}\)。也就是 \(2\) 是 \(\bmod p\) 的二次剩余当且仅当 \(p\equiv ±1\pmod 4\)。

把 \(aP\) 算一下就可以了。


二次互反律

假设 \(p,q\) 为不同的奇质数,则:

\[\left(\dfrac pq\right)\left(\dfrac qp\right)=(-1)^{\frac{(p-1)(q-1)}{4}}
\]

证明:

根据高斯引理,\(|pP_q\cap N_q|\) 意义就是满足下述条件的 \(x\) 的数量:\(x\in P_q,px\in N_q\)。

即 \(0<x<\dfrac q2\) 且存在整数 \(y\) 使得 \(-\dfrac q2<px-qy<0\)。这里一个 \(x\) 只会对应一个 \(y\),也就是对 \(x\) 计数等价于给合法的 \((x,y)\) 对计数。

根据不等式右边容易推出 \(y>0\),根据左边得到 \(qy<px+\dfrac q2<\dfrac{pq}2+\dfrac q2\),也就是 \(y<\dfrac{p+1}{2}\)。

也就是我们要对 \(0<x<\dfrac q2,0<y<\dfrac p2\),且 \(-\dfrac q2<px-qy<0\) 的 \((x,y)\) 对计数。

我们考虑对 \(\left(\dfrac qp\right)\) 使用同样的操作,同样的化简可以得到是等价于:

  • 对 \(0<x<\dfrac q2,0<y<\dfrac p2\),且 \(0<px-qy<\dfrac p2\) 的 \((x,y)\) 对计数。

由于我们计算的是上面两个东西的即,我们只需要把满足这两个情况之一的 \((x,y)\) 对计数即可。

注意到 \(px-qy\not=0\),也就是可以换成 \(-\dfrac q2<px-qy<\dfrac p2\)。搬一张图大概长这样:

其中 \(A,B\) 部分是不满足的,中间长条部分是满足的。

经过计算不难发现 \(A,B\) 是全等的,也就是满足条件的 \((x,y)\) 对的奇偶性等价于这个矩形内部的整点个数 \(\dfrac{p-1}{2}\dfrac{q-1}{2}\)。

QED。

这种方式,我们可以解决 \(\left(\dfrac 3p\right)\) 之类的问题。

学习笔记:勒让德(Legendre)符号的更多相关文章

  1. 学习笔记DL001:数学符号、深度学习的概念

    数学符号. 数和数组.

  2. [原创]java WEB学习笔记39:EL中的运算符号(算术运算符,关系运算符,逻辑运算符,empty运算符,条件运算符,括号运算符)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  4. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  5. Sass学习笔记之入门篇

    Sass又名SCSS,是CSS预处理器之一,,它能用来清晰地.结构化地描述文件样式,有着比普通 CSS 更加强大的功能. Sass 能够提供更简洁.更优雅的语法,同时提供多种功能来创建可维护和管理的样 ...

  6. swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  7. Python学习笔记—Python基础1 介绍、发展史、安装、基本语法

    第一周学习笔记: 一.Python介绍      1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  8. Golang 语法学习笔记

    Golang 语法学习笔记 包.变量和函数. 包 每个 Go 程序都是由包组成的. 程序运行的入口是包 main. 包名与导入路径的最后一个目录一致."math/rand" 包由 ...

  9. Theano 学习笔记(一)

    Theano 学习笔记(一) theano 为什么要定义共享变量? 定义共享变量的原因在于GPU的使用,如果不定义共享的话,那么当GPU调用这些变量时,遇到一次就要调用一次,这样就会花费大量时间在数据 ...

  10. ASP.Net开发基础温故知新学习笔记

    申明:本文是学习2014版ASP.Net视频教程的学习笔记,仅供本人复习之用,也没有发布到博客园首页. 一.一般处理程序基础 (1)表单提交注意点: ①GET通过URL,POST通过报文体: ②需在H ...

随机推荐

  1. C# 多线程与线程扫描器

    多线程是一种复杂的编程技术,可以同时运行多个独立的线程来处理各种任务.在C#中,可以使用Thread类和ThreadPool类来实现多线程编程.Thread类用于创建和控制线程.可以使用Thread. ...

  2. Hadoop超详细讲解之单节点搭建

    1 Hadoop介绍 Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理. ...

  3. 【链表】【python】力扣24. 两两交换链表中的节点【超详细的注释和解释】

    目录 说在前面的话 前言 一.题目(力扣24. 两两交换链表中的节点) 二.题目分析 实现完整代码(Python实现) 总结 说在前面的话 博主也好长一段时间没有更新力扣的刷题系列了,今天给大家带来一 ...

  4. abc339 详解

    第一篇整场题解纪念我第一次 AK 的 abc! A #include <iostream> using namespace std; int main(int argc, const ch ...

  5. Spring Boot 参数校验注解(自整理,不停的测试更新)

    首先我们只使用java官方的 javax.validation.constraints ,足以使用了,不使用spring boot 自身的,自身的与官方的一致,可能会有扩展,但是还得引入包,麻烦,只用 ...

  6. Linux--如何查看磁盘的IO(top、iostat)

    问题背景: 在性能测试时,虽然测试出了结果,但是我们并不知道瓶颈是源端,还是目标端.例如我做上传和下载性能验证,从Linux服务器上向OSS集群上传和下载文件,虽然测试出了速率,但是并不知道上传是否存 ...

  7. 使用explain分析Spark SQL中的谓词下推,列裁剪,映射下推

    一.谓词下推 Predicate PushDown 谓词下推的目的:将过滤条件尽可能地下沉到数据源端. 谓词,用来描述或判定客体性质.特征或者客体之间关系的词项,英文翻译为predicate,而谓词下 ...

  8. C++——异常处理模块笔记

    异常处理是C++中的重要概念之一,用于处理在程序执行过程中可能发生的错误或异常情况.异常是指在程序执行过程中发生的一些不寻常的事件,例如除零错误.访问无效内存等.C++提供了一套异常处理机制,使得程序 ...

  9. 机器学习基础01DAY

    数据的特征抽取 现实世界中多数特征都不是连续变量,比如分类.文字.图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取. sklearn.feature_extract ...

  10. 从零开始的react入门教程(十),快速上手react-redux,相对于redux它究竟简化了什么?

    壹 ❀ 引 在前面两篇文章中,我们介绍了redux与context部分概念与基本用法,这里我们做个简单复习. redux属于应用数据流框架,主要用于应用状态的管理,比如react中的state.其数据 ...