a,b 两个数字,都模m,当两个数字模m后余的数一样即为同余。
例子:
a = bq + r (mod m),这里的a 和 r 就是同余 ,因为a模m就是余r的
同余性质:若 m | a-b 则 a 和 b 同余 m,同余符号用三横线表示
传递性:若:a b同余 ,b c 同余,那么a和c就同余
倍数原则:a和b模m同余,则a = km + b
解释:同余中玩的也是余数,所以当模m余数相同的时候,不管你添加多少个m都是同余的结果
加法原则:a b 同余,c d 同余,则a + c 和 b + d也同余
解释:原因是因为a 和 b的余数是相同的,只要两边添加相同的数字便不会改变ab之间还是同余的关系,那么上面添加的是 c 和 d,明显cd本身就是同余,也就是说ab添加的不是cd而是cd的余数,他们的余数是一样的,也就是两边添加后还是同余的结果。
乘法原则:a b 同余,c d 同余,则a × c 和 b × d也同余
解释:同理,本质是用余数进行运算,所以相乘也是两边乘以同一个数字后还是同余的。
注意:乘法成立,除法不成立
乘法原则推论:a b 模m同余,则:na 和 nb同余,n为任意整数
解释:余数同乘则不变
指数原则:若ab同余,则:ana^nan和bnb^nbn也同余
解释:因为a和b同余,次方数也一样,个数一样的a和b相乘,其实也就是和乘法原则一样,所以指数原则只要次方数一样也是同余。
单独原则:a + b mod m == a mod m + b mod m 或者 当ab同余的时候,na和nb在判断是否同余的时候,也可以单独先对ab分开取模,例如:n (a mod m) = n (b mod m)
解释:在一个求模式子中,可以单独拆开来分别先取模,同理在乘法中也一样,两个数字相乘,也可以单独拆开来分别取模,这和十进制运算也是一样的道理。
同除原则:若ad 和 bd 模 m同余,(d,m) = 1,则:a 同余 b
解释:上面的乘法原则提到除法不行,但是这里又可以?因为这里的d是和m互素的,所以我们可以用单独原则,将两边的d进行先取模,最后得到一个1和ab相乘,所以最后得出ab是同余的,所以在希望通过除法对数字简化的时候必须要保证两边的数字能够提取出来的公因数是与m互素的才能够保证之后的数字仍为同余。
若ab模m同余 ,取k,k>0,则:同乘k后ak bk 模mk仍然同余
解释:这里的k并没有考虑是否和m互素或者与其他数字有什么联系,我们不考虑这些关系后把m也同时乘k,这时候当我们再把ak取模的时候会把k一同消去,留下的只有a的余数,同理bk也是留下了b的余数,那么就和原本的ab模m同余一样了。对比上面同乘原则这里更多的是考虑整体,而同乘原则考虑的是余数之间,因为同余的余数相等,同乘k是依旧同余,但余数余数不一样了,变成了k倍了,但是这里是整体乘k,取模的时候是整体模k,所以,模完之后的余数仍然和原本的ab模m后的余数使用一样的,因此这两个定理是不一样的。
若ak bk 模mk同余,则:a b 模 m同余
解释:其实是上一条定理的推论,但是要把模数也除,因为这里的k并没有和模数mk互素,因此也要都除。为什么不叫同除:因为同的意思是同余的两个数的同除,不关模数的事情,但这里把模数也除了,所以不叫同除原则了(好牵强的解释)。
把ak bk mk换成c d e,那么推论就是:cd模e同余,那么c/k d/k 模e/k同余
假如:a 三 b (mod m1) ,a 三 b (mod m2)
那么求出m1,m2的最小公倍数为 G
则:a 三 b (mod G) 同余。
(PS:这里的定理在后面的方程组中,如果发现一个数字可以拆分成m1,m2,mi…相乘,并且两两互素的时候就可以减少计算量)
总结
“同”的字眼一般是对同余符号两边的数字进行操作,和模数没有关系
因此:同乘k模m仍旧同余,但余数若没有超出模数大小就变成了余数的k倍。同除就是能将两边的数提取公因数,并且该公因数需要和模数互素才可以同除。
以下说的就是和模数有关的,当两边的数和模数都能提取出一个公共的公因数就可以一并提取,也可以无缘无故的同时乘一个k数进去,涉及到模数改变的,一般改变之后,和原本的式子的余数一样。
完全剩余系是由剩余类中的数字组成的。
是等于模m中 ,0~m-1的数字就是完全剩余系,即两两不同余。
当模m后,每一个数字都不会大于m,那么在0~m-1个数字中,每个数字代表了一个剩余数字,因为在模的世界里, 比如1模m余数为1,也就是剩余为1的一类,当1加上模数m的时候,再去模m后还是1,所以余数为1的数字很多,把这些数字统一起来叫余数为1的剩余类
设:
C0C_0C0 代表余数为0的一类
C1C_1C1 代表余数为1的一类
C2C_2C2 代表余数为2的一类
C3C_3C3 代表余数为3的一类,以此类推
这就是剩余类,剩余类有m个,范围是[0, m-1]
当模m后,我们在每一个剩余类中取出一个数字来组成一个整体,那么该整体就叫做完全剩余系。
完全剩余系的性质
简化剩余系就是在完全剩余系中找出与模数m互素的剩余类,将其留下来组成的整体就是简化剩余系。
举例:模数为8的时候
C1C_1C1 C3C_3C3 C5C_5C5 就是模8的简化剩余系,其他剩余类中的0 2 4都不是和8互素的
模m的简化剩余系中的个数,叫做欧拉函数:ϕ\phiϕ(m)
其他运算和简化剩余系一样,一些简单的运算后保证还是简化剩余系即可。
设:(a,m) = 1,a×a−a^-a−三 1 mod m
a−a^-a−就是a的逆元,相当于分数中的倒数,一个数乘以他的倒数就等于1,在同余中同理,当一个数乘以逆元,就同余1.
如何求逆元:
对(a,m)使用欧几里德算法后使用裴蜀等式算出s和t,也就是sa + tm = 1后,很明显,要找a的逆元就是s,因为tm模m后是0,只剩下sa = 1所以逆元就是s
欧拉定理必须要记住,在后续解方程或者计算高次幂的数字时候能大大减少计算量。
费马小定理
apa^pap−^-−1^11 三 1 (mod p)
解释:其实就是应用了欧拉定理中的方法,当p是素数的时候ϕ(p)\phi(p)ϕ(p) = p-1