同余系下的简单理论和算法
抽代赛高。
整除式
首先同余的一个理论基石就是整除式
\(a\mid b\) 表示 \(a\) 整除 \(b\) 。
有几个性质:
同余恒等式
类比普通的实数恒等式 \(a = b\), 同余恒等式也有一些可操作的性质。
这些性质给出了处理同余恒等式的一些方法。
基本性质
同加同减
显然地, 有
挺容易验证的。
同乘
同样显然地,有
与整除式的联系
基本
刚才说了整除式是同余理论的一个基石就是因为以下一个等价式:
可以用这个推一些同余恒等式的性质。
恒等式合并(拆分)
就得到了
消去(同除)
就得到了 \(\dfrac{m}{gcd(m,k)}\Bigg|(a-b) \Leftarrow\Rightarrow a \equiv b (\mod \dfrac{m}{gcd(m,k)})\) (消去 \(\dfrac{k}{gcd(m,k)}\) 是因为 \(gcd(\dfrac{m}{gcd(m,k)},\dfrac{k}{gcd(m,k)})=1\)), 常用的特殊形式就是 \(k\) 和 \(m\) 互质的时候直接消去 \(k\) 而恒等式的其他部分不做任何变化。
剩余系
膜法剩余系
对于一个数 \(m\), 称膜 \(m\) 的剩余系是 \(\{0,1,2,\cdots,m-1\}\) 。
简化剩余系
对于一个数 \(m\), 称膜 \(m\) 的简化剩余系是 \(\{x\mid x在 m的膜法剩余系中且 gcd(x,m)=1\}\)
逆元
基本概念和线性同余方程解法
逆元就是 inv, inv 就是逆元。
对于一个二元运算, 恒等元(幺元)就是任何元素 \(x\) 和它运算的结果都是这个原来这个元素 \(x\) 的元素。
一个元素运算上它的逆元等于幺元, 很显然一个数的逆元是唯一的。
对于膜 \(m\) 剩余系里的数, 一个数 \(x\) 的逆元就是元素 \(y\) 使得 \(x*y\equiv 1(\mod m)\)。
然而数 \(x\) 并不一定存在逆元。
对于膜 \(m\) 剩余系里的元素, 只有它同时在膜 \(m\) 的简化剩余系的时候, 它才有逆元。
可以用裴蜀定理来证明, 这是因为:
欧拉定理解法
在 \(gcd(a,m)=1\) 的情况下,有:
也就是 \(a^{\varphi(m)-1} = inv(a) \mod m\) , 当 \(m\) 为素数时 \(\varphi(m)=m-1\) 。
证明: 记 \(m\) 的简化剩余系为 \(\sf\{t_1,t_2,\cdots,t_{\varphi(m)}\}\) , 显然对于一个与 \(m\) 互质的数 \(a\), \(\sf\{t_1,t_2,\cdots,t_{\varphi(m)}\} = \{a*t_1,a*t_2,\cdots,a*t_{\varphi(m)}\}\) , 这是因为 \(a*t_i \equiv a*t_j (\mod m) \Leftarrow\Rightarrow a_i \equiv a_j(\mod m)\)(还记得同余恒等式的“消去”吗?), 与集合的不可重复性矛盾。
这就得出了:
由于膜 \(m\) 简化剩余系里的数与 \(m\) 都互质, 所以可以消去, 最终得到: