[学习笔记] 阶 & 原根 - 数论
较为冷门(?)的数论知识,但在解决一些特殊问题上有着重要的作用。
整数的阶
根据欧拉定理有正整数 \(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\) 的一个原根,那么下列整数
构成了模 \(n\) 的既约剩余系。
没写完呢~
不太好理解。破译过来就是,这些整数模 \(n\) 的值在指数为 \(1\) 到 \(\phi(n)\) 的时候是互不相等的,并且这些整数模 \(n\) 的值只有这些,也就是取尽了整个值域。并且他们每 \(\phi(n)\) 个一循环。