「note」原根照抄
阶(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」原根照抄的更多相关文章
- 「NOTE」常系数齐次线性递推
要不是考到了,我还没发现这玩意我不是很会-- # 前置 多项式取模: 矩阵快速幂. # 常系数齐次线性递推 描述的是这么一个问题,给定数列 \(c_1,c_2,\dots,c_k\) 以及数列 \(f ...
- Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门
进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...
- 「2014-5-31」Z-Stack - Modification of Zigbee Device Object for better network access management
写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉: ...
- 「USACO16OPEN」「LuoguP3147」262144(区间dp
P3147 [USACO16OPEN]262144 题目描述 Bessie likes downloading games to play on her cell phone, even though ...
- Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹
作者 | pk 哥 来源公众号 | Python知识圈(ID:PythonCircle) APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为 ...
- Ubuntu「一键」设置全局代理
Ubuntu「一键」设置代理 sonictl note: the DNS problem may be still there. Except proxychains. WSL (Windows Su ...
- 「数据结构」Link-Cut Tree(LCT)
#1.0 简述 #1.1 动态树问题 维护一个森林,支持删除某条边,加入某条边,并保证加边.删边之后仍然是森林.我们需要维护这个森林的一些信息. 一般的操作有两点连通性,两点路径权值和等等. #1.2 ...
- 「译」JUnit 5 系列:条件测试
原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...
- 「译」JUnit 5 系列:扩展模型(Extension Model)
原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...
- JavaScript OOP 之「创建对象」
工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...
随机推荐
- GitHub 的项目徽章
GitHub 项目的 README.md 中可以添加徽章(Badge)对项目进行标记和说明,这些好看的小图标不仅简洁美观,而且还包含了清晰易读的信息. GitHub 项目的徽标可以参考 https:/ ...
- 揭秘Spring依赖注入和SpEL表达式
摘要:在本文中,我们深入探讨了Spring框架中的属性注入技术,包括setter注入.构造器注入.注解式属性注入,以及使用SpEL表达式进行属性注入. 本文分享自华为云社区<Spring高手之路 ...
- 抓包分析RST报文
大家好,我是蓝胖子,今天我们来分析下网络连接中经常出现的RST信号,连接中出现RST信号意味着这条链接将会断开,来看下什么时候会触发RST信号,这在分析连接断开的原因时十分有帮助. 本文的讲解视频已经 ...
- sql server注入rce实践
背景:在漏洞挖掘中,合理的利用sql注入,可以把注入转换成rce,使一个高危漏洞变成严重漏洞.在红蓝对抗中,利用注入rce,实现内网横向移动.笔者基于漏洞挖掘和红蓝对抗上遇到的sql server注入 ...
- ABP - 本地事件总线
1. 事件总线 在我们的一个应用中,经常会出现一个逻辑执行之后要跟随执行另一个逻辑的情况,例如一个用户创建了后续还需要发送邮件进行通知,或者需要初始化相应的权限等.面对这样的情况,我们当然可以顺序进行 ...
- 特性介绍 | MySQL测试框架 MTR 系列教程(四):语法篇
作者:卢文双 资深数据库内核研发 序言: 以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证.近期由于工作需要,深入了解了 MTR 的方方面面,发现 MTR 的能力不仅限于此 ...
- Flutter ListView 不满屏 无法滚动
场景: flutter ListView 在做上拉加载的时候,未list添加controller后,数据不满屏,无法滚动 解决: 未listview 设置: physics: const Always ...
- windows下安装及配置JDK(详解版)
1.下载JDK 本文以JDK1.8为主 JDK1.8官方下载链接 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloa ...
- 长连接:chatgpt流式响应背后的逻辑
一.前言: 提起长连接,我们并不陌生,最常见的长连接非websocket莫属了.即使没有在项目中实际用过,至少也应该有所接触.长连接指在一次网络通信中,客户端与服务器之间建立一条持久的连接,可以在多次 ...
- Builder 生成器模式简介与 C# 示例【创建型2】【设计模式来了_2】
〇.简介 1.什么是生成器模式? 一句话解释: 在构造一个复杂的对象(参数多且有可空类型)时,通过一个统一的构造链路,可选择的配置所需属性值,灵活实现可复用的构造过程. 生成器模式的重心,在于分离 ...