Last Updated: 2023-06-11 13:05:16 Sunday
-- TOC --
本文总结数学中的模运算和同余定理。
给定两个正整数m,n, 如果:
\(m \div n = a ... b\)
a是商,b是余数,b就是m模n的模运算结果,可以写成:
\(m \bmod n = b\), 模数n不能等于0.
基本上,模运算就是在计算除法的余数。
例如,13 mod 3 = 1 、27 mod 6 = 3 、28 mod 2 = 0
编程的时候,模运算的特性,在某些场景下,可以提高代码性能。比如,假设我们要将某个pointer在一个ring上移动offset的位置,offset可能很大,会绕ring好几圈,同时,offset可能是一个负数,表示反方向移动。此时,做一个模运算,可以有效提升性能。
假设ring长度为9:
>>> 5 % 9
5
>>> (5+9) % 9
5
>>> (5+9*12345) % 9
5
offset为负时:
>>> -4 % 9
5
>>> (-4-9) % 9
5
>>> (-4-9*12345) % 9
5
反方向移动4个位置,等同于正方向移动5个位置。
给定一个正整数m,如果两个整数a和b满足(a-b)能被m整除,即 \((a-b)\bmod m=0\), 那么就称整数a与b对模m同余,记作 \(a \equiv b(\bmod m)\)。(a与b在模m的时候恒等)
同余是两个数的性质,模运算是一种计算!
对模m同余的两个数,它们都是m的某个倍数再加上一个相同的“余数”。
同余定理有一些简单的结论:
本文链接:https://cs.pynote.net/math/202110045/
-- EOF --
-- MORE --