阶(multiplicative order)

\(\textbf{Def.}\):\(\delta_m(a)\) 为最小的 \(n\) 使得 \(a^n\equiv 1\pmod m\),其中 \((a,m)=1\)。

Observation 1:\(\boxed{a^0\not\equiv a^1\not\equiv\dots\not\equiv a^{\delta_m(a)-1}\pmod m}\)。

\(\textbf{Proof}\):若 \(\exists i,j,s.t.0\leqslant i<j<\delta_m(a),a^i\equiv a^j\pmod m\),则 \(a^{i-j}\equiv 1\pmod m\),又 \(i-j<\delta_m(a)\),矛盾。

\(\blacksquare\)

Observation 2:\(\boxed{\delta_m(a)\mid\varphi(m)}\)。

\(\textbf{Proof}\):由欧拉定理: \(a^{\varphi(m)}\equiv 1\pmod m\),因为 \(1^x=1\),所以如果存在 \(x_0\) 使得 \(a^{x_0}\equiv 1\pmod m\),那么 \(x_0\) 倍数也一定可以,也就是说存在周期性,所以 \(\delta_m(a)\mid\varphi(m)\)。BTW,同时也有若 \(a^n\equiv 1\pmod m\),则 \(\delta_m(a)\mid n\)。

\(\blacksquare\)

顺便可以知道若 \(a^p\equiv a^q\pmod m\),则 \(p\equiv q\pmod{\delta_m(a)}\)。

Lemma 1:设 \(m\in\mathbb{N}^*\),\(a,b\in\mathbb{Z}\),\((a,m)=(b,m)=1\),则 \(\boxed{\delta_m(ab)=\delta_m(a)\delta_m(b)}\) 的重要条件是 \((\delta_m(a),\delta_m(b))=1\)。

\(\textbf{Proof}\):略,具体见此处。

Lemma 2:设 \(k\in\mathbb{N}\),\(m\in\mathbb{N}^*\),\(a\in\mathbb{Z}\),\((a,m)=1\),则 \(\boxed{\delta_m(a^k)=\frac{\delta_m(a)}{(\delta_m(a),k)}}\)。

\(\textbf{Proof}\):略,具体见此处。

原根(primitive root)

\(\textbf{Def.}\):对于 \((a,m)=1\),若 \(\delta_m(a)=\varphi(m)\),则称 \(a\) 是模 \(m\) 的原根。

Lemma 1(判定定理):设 \(m\geqslant3\),\((a,m)=1\),则 \(a\) 为模 \(m\) 的原根当且仅当 \(\boxed{\forall p\in\mathbb{P},p\mid\varphi(m),a^{\frac{\varphi(m)}{p}}\not\equiv1\pmod m}\)。

\(\textbf{Proof}\):必要性显然,充分性证明见此处。

Lemma 2(数量定理):若 \(m\) 存在原根,则其原根数量为 \(\boxed{\varphi(\varphi(m))}\)。

\(\textbf{Proof}\):略,具体见此处。

Lemma 3(存在定理):\(m\) 存在原根当且仅当 \(\boxed{m=2,4,p^\alpha,2p^\alpha}\),其中 \(p\) 为奇素数,\(a\in\mathbb{N}^*\)。

\(\textbf{Proof}\):略,具体见此处。

若 \(m\) 存在原根,则最小原根 \(\leqslant m^\frac{1}{4}\)。

「note」原根照抄的更多相关文章

  1. 「NOTE」常系数齐次线性递推

    要不是考到了,我还没发现这玩意我不是很会-- # 前置 多项式取模: 矩阵快速幂. # 常系数齐次线性递推 描述的是这么一个问题,给定数列 \(c_1,c_2,\dots,c_k\) 以及数列 \(f ...

  2. Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门

      进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...

  3. 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management

    写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...

  4. 「USACO16OPEN」「LuoguP3147」262144(区间dp

    P3147 [USACO16OPEN]262144 题目描述 Bessie likes downloading games to play on her cell phone, even though ...

  5. Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹

    作者 | pk 哥 来源公众号 | Python知识圈(ID:PythonCircle) APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为 ...

  6. Ubuntu「一键」设置全局代理

    Ubuntu「一键」设置代理 sonictl note: the DNS problem may be still there. Except proxychains. WSL (Windows Su ...

  7. 「数据结构」Link-Cut Tree(LCT)

    #1.0 简述 #1.1 动态树问题 维护一个森林,支持删除某条边,加入某条边,并保证加边.删边之后仍然是森林.我们需要维护这个森林的一些信息. 一般的操作有两点连通性,两点路径权值和等等. #1.2 ...

  8. 「译」JUnit 5 系列:条件测试

    原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...

  9. 「译」JUnit 5 系列:扩展模型(Extension Model)

    原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...

  10. JavaScript OOP 之「创建对象」

    工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...

随机推荐

  1. Java如何实现去重?这是在炫技吗?

    大家好,我3y啊.由于去重逻辑重构了几次,好多股东直呼看不懂,于是我今天再安排一波对代码的解析吧.austin支持两种去重的类型:N分钟相同内容达到N次去重和一天内N次相同渠道频次去重. Java开源 ...

  2. JavaWeb编程面试题——导航

    引言 面试题==知识点,这里所记录的面试题并不针对于面试者,而是将这些面试题作为技能知识点来看待.不以刷题进大厂为目的,而是以学习为目的.这里的知识点会持续更新,目录也会随时进行调整. 关注公众号:编 ...

  3. 【Python&GIS】判断图片中心点/经纬度点是否在某个面内

     Python的exifread库可以获取图片中的源数据信息,包括经纬度.相机厂商.曝光时间.焦距.拍摄时间.拍摄地点等等信息.我们可以通过exifread库从图片中获取图片的经纬度,再通过shape ...

  4. youtobe深度学习推荐系统-学习笔记

    简介 前言 本文是Deep Neural Networks for YouTube Recommendations 论文的学习笔记.淘宝的召回模型曾经使用过这篇论文里面的方案,后续淘宝召回模型升级到了 ...

  5. GPT3的技术突破:实现更准确、更真实的语言生成

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 5. 优化与改进 6. 结论与展望 7. 附录:常见问题与解答 GPT-3 技术突破:实现更准确.更真实的语 ...

  6. Self-Instruct 论文解读:利用大模型自己给自己生成指令数据,指令数据自动生成

    总览 大规模"指令调整"的语言模型,即指令微调的LLM,已经表现出非凡的零样本能力,尤其是推广新任务上. 然而,这些模型严重依赖于人类编写的指令数据,而这些数据通常在数量.多样性和 ...

  7. 企业级logstash简单使用(ELK)

    企业级logstash简单使用(ELK) 要使用logstash收集到Elasticsearch的方式,需确保logstash版本与es版本一致. 由于我也是刚刚研究使用,所以本文暂不会出现原理性的东 ...

  8. 【Linux】部署Nginx

    1.先安装gcc-c++编译器 yum install gcc-c++ yum install -y openssl openssl-devel 2.再安装pcre包 yum install -y p ...

  9. Federated Learning003

    联邦学习笔记--003 2022.11.28周一 今天主要学习了几篇优秀的博客,补充了一些知识. (一)联邦学习面临的挑战 非独立同分布的数据 有限通信带宽 不可靠和有限的设备 什么是Non-IID( ...

  10. C标准库 操作文件

    C标准库 操作文件 数据持久化的两种方法:文件和数据库 文本文件和二进制文件 举个例子,写C++的代码,源代码为文本文件.编译出来的可执行文件(.exe)文件是二进制文件 文本文件 以文本的编码(AS ...