首页 > 其他分享 >原根学习笔记

原根学习笔记

时间:2023-03-17 19:11:23浏览次数:31  
标签:ab gcd 原根 笔记 学习 varphi delta equiv

原根学习笔记

对于 \(a \in \mathbb{Z}, m \in \mathbb{N}^+, \gcd(a, m) = 1\)。满足 \(a^n \equiv 1 \pmod m\) 的最小正整数 \(n\) 被称为 \(a\) 模 \(m\) 的阶,记作 \(\delta_m(a)\)。一般只讨论 \(0 \le a < m\) 的情况。

由欧拉定理可知,阶一定存在。

性质

性质 \(1\):\(a, a^2, \cdots, a^{\delta_m(a)}\) 在模 \(m\) 意义下互不相同。

证明

考虑反证,若存在 \(1 \le i < j \le \delta_m(a)\) 满足 \(a^i \equiv a^j \pmod m\),则 \(a^{j - i} \equiv 1 \pmod m\) 且 \(0 < j - i < \delta_m(a)\),与阶的最小性矛盾。


性质 \(2\):若 \(a^n \equiv 1 \pmod m\),则 \(\delta_m(a) \mid n\)。

证明

设 \(n = \delta_m(a)p + q\),其中 \(0 \le q < \delta_m(a)\)。

若 \(q > 0\),则

\[a^q \equiv a^q(a^{\delta_m(a)})^p \equiv a^n \equiv 1 \pmod m \]

与阶的最小性矛盾,故 \(q = 0\),故 \(\delta_m(a) \mid n\)。


性质 \(3\):对于 \(a, b \in \mathbb{Z}, m \in \mathbb{N}^+, \gcd(a, m) = \gcd(b, m) = 1\),\(\gcd(\delta_m(a), \delta_m(b)) = 1 \Leftrightarrow \delta_m(ab) = \delta_m(a) \delta_m(b)\)。

证明

必要性:

因为 \(a^{\delta_m(a)} \equiv b^{\delta_m(b)} \equiv 1 \pmod m\)。

故 \((ab)^{\operatorname{lcm}(\delta_m(a), \delta_m(b))} \equiv 1 \pmod m\)。

由性质 \(2\)得 \(\delta_m(ab) \mid \operatorname{lcm}(\delta_m(a), \delta_m(b))\)。

因为 \(\delta_m(ab) = \delta_m(a) \delta_m(b)\),故 \(\delta_m(a) \delta_m(b) \mid \operatorname{lcm}(\delta_m(a), \delta_m(b))\)。

故 \(\gcd(delta_m(a), \delta_m(b)) = 1\)。

充分性:

\[1 \equiv (ab)^{\delta_m(ab)} \equiv \left((ab)^{\delta_m(ab)}\right)^{\delta_m(b)} \equiv (ab)^{\delta_m(ab) \delta_m(b)} \equiv a^{\delta_m(ab) \delta_m(b)} b^{\delta_m(ab) \delta_m(b)} \equiv a^{\delta_m(ab) \delta_m(b)} \pmod m \]

由性质 \(1\) 得 \(\delta_m(a) \mid \delta_m(ab)\delta_m(b)\)。

又因为 \(\gcd(\delta_m(a), \delta_m(b)) = 1\),故 \(\delta_m(a) \mid \delta_m(ab)\)。

同理,\(\delta_m(b) \mid \delta_m(ab)\)。

所以 \(\delta_m(a) \delta_m(b) \mid \delta_m(ab)\)。

又有 \(\delta_m(ab) \mid \operatorname{lcm}(\delta_m(a), \delta_m(b))\) 且 \(\gcd(\delta_m(a), \delta_m(b)) = 1\),故 \(\delta_m(a) \mid \delta_m(a) \delta_m(b)\)。

故 \(\delta_m(ab) = \delta_m(a) \delta_m(b)\)。


性质 \(4\):对于任意 \(k \in \mathbb{N}\),有 \(\delta_m(a^k) = \dfrac{\delta_m(a)}{\gcd(\delta_m(a), k)}\)。

证明

由于

\[a^{k\delta_m(a^k)} = (a^k)^{\delta_m(a^k)} \equiv 1 \pmod m \]

故 \(\delta_m(a) \mid k \delta_m(a^k)\)。故 \(\dfrac{\delta_m(a)}{\gcd(\delta_m(a), k)} \mid \delta_m(a^k)\)。

另一方面,设 \(u = \dfrac{1}{\gcd(\delta_m(a), k)}\),则

\[(a^k)^\dfrac{\delta_m(a)}{u} = a^{\dfrac{k \delta_m(a)}{u}} = (a^{\delta_m(a)})^{\dfrac{k}{u}} \equiv 1 \pmod m \]

故 \(\delta_m(a^k) \mid \dfrac{\delta_m(a)}{\gcd(\delta_m(a), k)}\)。

故 \(\delta_m(a^k) = \dfrac{\delta_m(a)}{\gcd(\delta_m(a), k)}\)。

原根

对于 \(m \in \mathbb{N}^+\),若 \(a \in \mathbb{Z}, \gcd(a, m) = 1, \delta_m(a) = \varphi(m)\),则称 \(a\) 为模 \(m\) 的原根。一般只讨论 \(0 \le a < m\) 的情况。

原根判定定理

对于 \(m \ge 3, \gcd(a, m) = 1\),\(a\) 是模 \(m\) 的原根的充要条件是 \(\forall p \in \mathbb{P}, p \mid \varphi(m)\),有 \(a^{\frac{\varphi(m)}{p}} \not\equiv 1 \pmod m\)。

证明

必要性显然。

考虑证明充分性,假设存在一个 \(a\) 满足 \(\forall p \in \mathbb{P}, p \mid \varphi(m)\),有 \(a^{\frac{\varphi(m)}{p}} \not\equiv 1 \pmod m\) 但不是模 \(m\) 的原根,则 \(\delta_m(a) < \varphi(m)\) 且 \(\delta_m \mid \varphi(m)\)。则必然存在一个 \(p \in \mathbb{P}, p \mid \varphi(m)\) 满足 \(\delta_m(a) \mid \dfrac{\varphi(m)}{p}\),则 \(a^{\frac{\varphi(m)}{p}} \equiv 1 \pmod m\)。与假设矛盾。

原根个数

若 \(m\) 存在原根,则它的原根个数为 \(\varphi(\varphi(m))\)。

证明

若 \(m\) 有原根 \(g\),则

\[\delta_m(g^k) = \dfrac{\delta_m(g)}{\gcd(\delta_m(g), k)} = \dfrac{\varphi(m)}{\gcd(\varphi(m), k)} \]

所以若 \(\gcd(k, \varphi(m)) = 1\),则 \(\delta_m(g^k) = \varphi(m)\),故 \(g^k\) 也是 \(m\) 的原根。

故 \(m\) 的原根的个数为满足 \(\gcd(\varphi(m), k) = 1\) 的 \(k\) 的个数,即 \(\varphi(\varphi(m))\)。

原根存在定理

一个数 \(m\) 存在原根当且仅当 \(m \in \{2, 4, p^k, 2p^k\}\),其中 \(p \in \mathbb{P}, k \in \mathbb{N}^+\)。

证明过于答辩,略。

最小原根的数量级

若 \(m\) 有原根,其最小原根不多于 \(m^{0.25}\) 级别。

证明略。

由于这个定理,暴力求一个数的最小原根的复杂度是可以接受的。

标签:ab,gcd,原根,笔记,学习,varphi,delta,equiv
From: https://www.cnblogs.com/mk-oi/p/Protoroot.html

相关文章

  • 3.17学习总结
    今天上web课上机实验学会了网页html的制作实验代码如下<!DOCTYPE html><html>    <head>        <title>信2105-3尹亚博个人主页</title>      ......
  • 狂神说的MyBatisPlus笔记 -https://blog.csdn.net/weixin_43070148/article/details/1
    狂神说的MyBatisPlus笔记https://blog.csdn.net/weixin_43070148/article/details/127313367学习MyBatis-Plus之前要先学MyBatis–>Spring—>SpringMVC为什么要学它?MyB......
  • Asp-Net-Core开发笔记:使用RateLimit中间件实现接口限流
    前言最近一直在忙(2月份沉迷steam,3月开始工作各种忙),好久没更新博客了,不过也积累了一些,忙里偷闲记录一下。这个需求是这样的,我之前做了个工单系统,现在要对登录、注册、发起......
  • Apache Spark学习
    关于ApacheSpark1.2003-2006年,谷歌发表了Googlefilesystem、MapReduce、bigtable三篇重量级系统论文,分别讨论了大规模数据如何存储、处理及结构化组织。之后ApacheHad......
  • Canal学习
    在mysql创建cancel用户#使用CREATEUSER创建一个用户,用户名是canal,密码是canal,主机名是localhost。SQL语句和执行过程如下。createuser'canal'@'%'identified......
  • Vue 学习笔记
      各目录作用{{}}引用data中的值v-html引用data中的值并渲染到页面上v-bind控制属性中的值缩写v-model数据双向绑定v-ifv-on:click监听事件缩写{{message|c......
  • Nacos身份认证绕过漏洞复现笔记
    0X00漏洞描述Nacos是一个易于使用的平台,专为动态服务发现和配置以及服务管理而设计。可以帮助您轻松构建云原生应用程序和微服务平台。 Nacos身份认证绕过漏洞(QVD-2......
  • SQLite 学习日志
    SQLite 语法SQLite是遵循一套独特的称为语法的规则和准则。本教程列出了所有基本的SQLite语法,向您提供了一个SQLite快速入门。大小写敏感性有个重要的点值得注意,S......
  • 机器学习(二):感知机+svm习题 感知机手工推导参数更新 svm手推求解二维坐标超平面直线方
    作业1:输入:训练数据集\(T={(x1;y1);(x2;y2),...,(xN;yN)}\)其中,\(x\inR^n\),\(y\inY=\{+1,-1\}\),\(i=1,2...,N\),学习率\(η=0.1\).输出:\(w\),\(b......
  • APP学习10(增删改查)
    快速格式化代码:ctrl+alt+l 1.SQList方式存储数据数据关键一:监听器过多的情况下如何优化代码。1.1添加数据1.用db.insert方法caseR.id.add:......