首页 > 其他分享 >[学习笔记] 阶 & 原根 - 数论

[学习笔记] 阶 & 原根 - 数论

时间:2024-07-28 22:39:11浏览次数:10  
标签:原根 数论 na 笔记 pmod 整数 ord equiv mathrm

较为冷门(?)的数论知识,但在解决一些特殊问题上有着重要的作用。

整数的阶

根据欧拉定理有正整数 \(n\) 和一个与 \(n\) 互素的整数 \(a\),那么有 $a^{\phi(n)} \equiv 1 \pmod{n} $。因此至少存在一个整数满足这个方程。并且由良序原理可得一定存在一个最小正整数满足这个方程。、

定义:设 \(a\) 和 \(n\) 是互素的整数,\(a\not = 0\),\(n > 0\),使得 \(a^x\equiv 1 \pmod n\) 的最小正整数称之为 **\(a\) 模 \(n\) 的阶 **,记作 \(\mathrm{ord}_na\)。

定理1

如果 \(a\) 和 \(n\) 为互素的整数,且 \(a\not = 0\)、\(n>0\),那么正整数 \(x\) 是同余方程 \(a^x\equiv 1 \pmod n\) 的一个解当且仅当 $ \mathrm{ord}_na \mid x$。

证明:

假设 \(a^x\equiv 1 \pmod n\),并将 \(x\) 表示为:

\[x=k\times \mathrm{ord}_na + r\ \ \ (0\le r< \mathrm{ord}_na) \]

得:

\[a^x=a^{k\times \mathrm{ord}_na + r}=(a^{k\times \mathrm{ord}_na})^r\equiv a^r\pmod n \]

因为 \(a^x\equiv 1 \pmod n\),所以 \(a^r\equiv 1 \pmod n\),又因为 \(\mathrm{ord}_na\) 为使得该同余方程右边为 \(1\) 的最小正整数,所以 \(r=0\),所以有 \(x=k\times \mathrm{ord}_na\),固有 $ \mathrm{ord}_na \mid x$。

推论1.1

如果 \(a\) 和 \(n\) 为互素的整数,且 \(n>0\),那么 \(\mathrm{ord}_na \mid \phi(n)\)。

根据定理1不难得证。

定理2

如果 \(a\) 和 \(n\) 为互素的整数,且 \(n>0\),那么 \(a^i\equiv a^j \pmod n\) 当且仅当 \(i \equiv j \pmod {\mathrm{ord}_na}\)。\(i\) 和 \(j\) 均为非负整数。

证明:

假设 \(a^i\equiv a^j \pmod n\) 且 \(j\le i\)。因为 \(a \equiv 1 \pmod {n}\),所以 \(a^j \equiv 1 \pmod n\)。那么可列出下面狮子:

\[a^i \equiv a^j \equiv a^ja^{i-j} \pmod n \]

约掉 \(a^j\) 则有:

\[a^{i-j} \equiv 1 \pmod n \]

由定理1可得 \(\mathrm{ord}_na \mid i-j\),换个形式:\(i \equiv j \pmod {\mathrm{ord}_na}\)。得证。

这条性质非常重要,换个说法就是当 \(a\) 的指数小于 \(\mathrm{ord}_na\) 的时候所有模后的数都是不相等的。接下来说明原根的性质时还会提到类似的这一点。这可以把某些程序的复杂度 \(\mathcal{O}(n)\) 压缩到 \(\mathcal{O}(\mathrm{ord}_na)\)。是一个很大的优化。

原根

定义:如果 \(r\) 和 \(n\) 是互素的整数且 \(n>0\),那么当 \(\mathrm{ord}_nr=\phi(n)\) 时,称 \(r\) 是 \(n\) 的原根。

某个整数的阶是一定存在的,但原根可不是什么整数都有的。考虑哪些正整数有原根。一个整数存在原根当且仅当他为 \(2,4,p^k,2p^k\),其中 \(p\) 为奇素数,\(k\) 为正整数。

定理3

如果正整数\(r\) 和 \(n\) 互素,并且 \(n>0\), 如果 \(r\) 是 \(n\) 的一个原根,那么下列整数

\[r^1,r^2,\dots,r^{\phi(n)} \]

构成了模 \(n\) 的既约剩余系。

没写完呢~

不太好理解。破译过来就是,这些整数模 \(n\) 的值在指数为 \(1\) 到 \(\phi(n)\) 的时候是互不相等的,并且这些整数模 \(n\) 的值只有这些,也就是取尽了整个值域。并且他们每 \(\phi(n)\) 个一循环。

标签:原根,数论,na,笔记,pmod,整数,ord,equiv,mathrm
From: https://www.cnblogs.com/xiaolemc/p/18328067

相关文章

  • C语言笔记(第n版):编译器与构建系统
    一、C语言标准与编译器        C编译器是软件开发中至关重要的工具,它的主要作用是将人类可读的C语言源代码转换为计算机能够理解和执行的可执行代码。    (一)C语言标准的制定C语言标准的制定是一个逐步发展和完善的过程。在早期,C语言缺乏统一的标准,这导致......
  • C++ 笔记(一)数据类型(1)
    1简单的变量变量名命名规则如下变量名称可以包含字母、数字和下划线(_)。变量名称的第一个字符必须是字母或下划线。区分大小写,即大写字母和小写字母被认为是不同的字符。不能使用C++的关键字作为变量名。2数据类型2.1整型short、int、long和longlong这四种类型都是......
  • AC 自动机学习笔记
    preface第一次写ACAM模版是2023.7.02,现在重新回顾了一下,还是有不少新的理解的,或者说一些概念更加清晰了。1.引入思考这样一个问题:给若干模式串,求询问串中出现了多少个模式串。暴力肯定是一一比对,复杂度是\(O(n^2)\)以上的,可以哈希一下,那复杂度就是\(O(n^2)\)。回想......
  • Contest5408 - 数论函数
    Agcd\[\begin{aligned}&\sum\limits_{i=1}^n\sum\limits_{j=1}^n[\gcd(i,j)\inP]\\=&\sum\limits_{d=1}^n[d\inP]\sum\limits_{i=1}^n\sum\limits_{j=1}^n[\gcd(i,j)=d]\\=&\sum\limits_{d=1}^n[d\in......
  • KD-Tree 学习笔记
    KD-Tree学习笔记建树如果当前超长方体只有一个点,返回这个点选择一个维度(轮流)选择中位数(\(O(n)\))递归应用定理二维KDT中节点代表矩阵与任意一个矩形(边界上)有交的只有\(O(\sqrtn)\)个。证明:考虑一条直线,与KDT的交集,此层最多有两个,递归得到递归式,然后套主定理。......
  • 【esp32 学习笔记】(esp-idf 版本)从点灯开始——点亮LED
    【配置CMakeLists】首先配置自定义组件的CMake文件:components->led->CMakeLists.txt完整配置内容如下:file(TO_CMAKE_PATH"$ENV{IDF_PATH}"IDF_PATH) #将Windows下ESP-IDF的路径转化CMAKE路径idf_component_register(SRCS"led.c"          INCLUDE_......
  • 实战|Qt开发WordBN笔记软件#10 添加Font Awesome字体图标
    01背景【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件;WordBN基于VS2019、Qt6.5开发,使用QtQuick(QML)开发语言。本课程将以【WordBN字远笔记】的界面为实战基础,详细介绍如何基于Qt/QML开发语言,从零开始开发一套真正的程序,包括国际化、版本发布、安装包制作等项目......
  • 机试笔记-2
    1.进制转换类问题反序数:比如输入123,输出321intmain(){intn;cin>>n;intans=0;while(n>0){ans=ans*10;ans=ans+(n%10);n=n/10;}cout<<ans<<endl;}10进制转x进制 输入100......
  • ssy暑假集训暴力算法学习笔记
    7.28集训第六天今天t大学的学长peop1e来给我们讲课啦!人好帅呀嘿嘿嘿....内容如下模拟退火:定义模拟退火可以分成两个部分,一个是"模拟",一个是"退火",先介绍什么叫退火,贴一张百度百科的图吧:\(\\\)那这"退火"的定义有啥用吗?模拟退火就是用来模拟整个退火的过程(其实没啥相似......
  • 算法笔记|Day10栈与队列II
    算法笔记|Day10栈与队列II☆☆☆☆☆leetcode150.逆波兰表达式求值题目分析代码☆☆☆☆☆leetcode239.滑动窗口最大值题目分析代码☆☆☆☆☆leetcode347.前K个高频元素(待补充)题目分析代码☆☆☆☆☆leetcode150.逆波兰表达式求值题目链接:leetcode150.......