正题

原根相关

定义

群:非空集合 G 上定义了一种二元运算,满足封闭性、结合 律、单位元、逆元。

环:非空集合 R 上定义了加法和乘法,在加法下构成交换 群,满足乘法结合律、分配律。

域:非零元素都可逆的满足交换律的环。(也就是交换幺环)

循环群:指群可以由一个元素生成:G = x,x2,x3...。

阶:满足 xd = 1 的最小正整数 d。记为 ord(x)。xm = 1 当 且仅当 ord(x)|m。

模素数 p 的剩余类构成一个有限域。 模 m 意义下与 m 互质的元素组成缩系,大小为 ϕ(m)。

原根:能生成缩系的元素,即 xi 两两不同(0 ≤i < ϕ(m))的 x。原根不一定存在。事实上,当且仅当 m = 2,4,pk,2∗pk 时模 m 缩系的原根存在。p 是任意奇质数。

模质数 p 域下原根的存在性

Fact: 设 a 的阶是 m,d|m,则的阶是

Fact: 设 a 的阶是 m,b 的阶是 n,则必存在一个数,阶是 lcm(n,m)。

先考虑 n,m 互质,设 ab 的阶是 e,则有 1 = = , 于是 n|me,于是 n|e。同理有 m|e,于是 nm|e。而  = 1, 于是 e|nm,于是 e = nm。

如果 n,m 不互质,只要取 互质且(比如把每个质因子分到 n′,m′ 中),此时  阶为 n′,阶为 m′。乘起来即可。

这样就说明一定存在一个数,阶是所有元素的阶的倍数 d。 (这样说其实是不准确的,可以这样考虑,所有元素的阶都是p-1的因子,否则阶取p-1有更小值)知 d|p−1,而  = 1 有 p−1 个不同的根。由于是 域,d 至少为 p−1,于是 d = p−1(根据mod质数p下域的性质一个n次多项式最多有n个零点,证明考虑将这个n次多项式因式分解,然后又因为是质数所以有逆元)。(不包括0)的乘法群是个循环 群,即原根存在。

原根个数

Fact:n 个元素的循环群的生成元个数为 。 取一个生成元 g,考虑的阶 e。设 ,有
,于是 。 而若有  则 n|re,于是,于是 。 当且仅当 e = n 即 gcd(n,r) = 1 时  也是生成元,于是恰 有  个。一般地,阶为 d|n 的元素恰有个 (即求有多少 r 使 )。 如果原根存在,即缩系是大小为  的循环群,那么原根 个数为 。特别地,模质数域的原根个数为。 最小的原根一般不大,可以暴力枚举判断。求出一个原根 g 后,全部原根的集合就是 {|gcd(n,r) = 1}。

二次剩余

为勒让德符号,p 是一个奇素数。

表示 a 是模 p 域下的二次剩余,−1 表示是二次非剩余。

计算方法(欧拉准则):

证明:

考虑a只有两种形式:

,前者一定有解,后者一定无解

因为在mod p不存在,这个可以用反证法证明:假设存在,,那么

与原根的性质矛盾。

,所以

所以

必要性显然,所以我们可以直接用来判定a是属于哪一种情况。

定理:二次互反律,对于奇质数p,q,有

证明还不会,在网上暂时找不到。

现在讲讲求解二次剩余的两种方法:

1.Cipolla 算法

要求 的解(满足)。 随机一个 a 使得 是二次非剩余,即 。设。可证 构成一个域。 构造得二次剩余的解为 

证明:

并且 不存在 项:设 ,则有。若 则有 ,左边没有二次剩余而右边有。矛盾。

2.绿色夹克衫算法

这个算法十分的巧妙,可以均摊log,与上者不同,这个是直接算的。具体可以看一看他的blog。

找时间笔者彻底弄懂了再来补。

学习笔记第五十节:原根相关与二次剩余相关推荐

  1. OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast

    OpenCV学习笔记(五十六)--InputArray和OutputArray的那些事core 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray ...

  2. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

  3. OpenCV学习笔记(五十四)——概述FaceRecognizer人脸识别类contrib

    在最新版的2.4.2中,文档的更新也是一大亮点,refrence manual扩充了200多页的内容,添加了contrib部分的文档.contrib就是指OpenCV中新添加的模块,但又不是很稳定,可 ...

  4. Slicer学习笔记(五十四)slicer分割结果3D显示

    Slicer学习笔记(五十四)slicer分割结果3D显示 1.Create a segmentation from a labelmap volume and display in 3D 2.Exp ...

  5. Slicer学习笔记(五十六)slicer分割transformNode包含的信息与使用

    Slicer学习笔记(五十六)slicer分割transformNode包含的信息与使用 1.打印transformNode信息 2.测试 2.1.变换前 2.2.变换后 3.使用坐标变换 1.打印t ...

  6. Slicer学习笔记(五十五)slicer分割segmentationNode包含的信息与使用

    Slicer学习笔记(五十五)slicer分割segmentationNode包含的信息与使用 segmentationNode = slicer.util.getFirstNodeByClassBy ...

  7. 线性代数学习笔记——第五十三讲——齐次方程组求解实例

    1. 给定一个齐次线性方程组,求其通解 (写出系数矩阵 -> 行初等变换为行简化矩阵 -> 求基础解系 -> 写出通解) 2. 示例2 (只有零解的情况) 3. 与基础解系等价的线性 ...

  8. 线性代数学习笔记——第五十二讲——齐次方程组解的性质和基础解系

    1. 齐次方程组的平凡解及有非零解的等价命题(矩阵非满秩:矩阵列向量组线性相关) 2. 齐次线性方程组解的性质(两解之和.解的数乘.解的线性组合均是解) 3. 齐次线性方程组的全部解构成的集合中包括零 ...

  9. 高等数学学习笔记——第五十讲——可降阶的高阶微分方程

    1. 问题引入--悬链线问题.从地面垂直向上发射火箭问题需要解二阶微分方程 2. 可降阶的高阶微分方程 3. 另外两种类型的高阶微分方程 4. 微分方程应用实例--悬链线问题的条件量化及建模 5. 悬 ...

最新文章

  1. Fundebug后端Java异常监控插件更新至0.2.0,支持Spring及Maven
  2. Silverlight C# 游戏开发:Flyer03大图裁剪,高效动画的艺术
  3. jedivim加载失败,提示没有支持python3,(markdown也是如此)
  4. Codeforces Round #717 (Div. 2)
  5. LeetCode 406. Queue Reconstruction by Height
  6. ssh远程连接不上服务的处理过程总结
  7. 点餐系统ip地址_spring boot实战——微信点餐系统03:微信授权(用户授权),免费内网穿透(固定ip)...
  8. DeepMind论文三连发:如何在仿真环境中生成灵活行为
  9. 【胡学长 带你学 Global Mapper 】新手必看 入门指南
  10. EM算法原理详解与高斯混合模型
  11. plm系统服务器,PLM产品全生命周期管理 - 产品数据服务系统
  12. 来上海度过的第一个五一,我去了哪些地方?
  13. Alarm Clock
  14. 燕山大学联通新卡绑定校园网
  15. 股市入门基础 :基本术语和概念的解读
  16. 微软 Win10 更新再出 bug
  17. 怎么用计算机扫描照片,怎么用电脑扫描文件
  18. 快速提高微信公众号文章的阅读量的必备神器——阅读红包!
  19. Implicit Intent--含蓄的intent
  20. 高通骁龙410C开发板基础知识

热门文章

  1. springboot 集成自定义Quartz
  2. vivo的Android版本功能,vivo用户让人羡慕!Android Q尝鲜升级教程,这三款机型提前体验...
  3. 使用npm命令时出现Cannot find module ‘semver‘
  4. PCB孔铜厚度标准及成品铜厚构成、由来
  5. 集线器、网桥、交换机、路由器、网关的区别
  6. 聚划算客户端2期总结
  7. Nat Microbiol | 内农大张和平团队新突破—高分辨率下的人类肠道微生物组
  8. setTimeout 和 setInterval 的定时时间深入研究
  9. 2016级算法第二次上机-A.画个圈圈诅咒你
  10. 什么是双亲委派?如何打破双亲委派?