# 取模运算
## 模的概念
“模”指的是一个计量系统的计数范围,最常见的例子是时钟,它的计数范围为12个整点,所以其模为12。
数字电路里的计数器也是一个常见例子,一个8位计数器,其模为$2^8$,计数范围$[0,2^8-1]$。
## 取模运算定义
取模运算本质上是求取计量系统没有“溢出来”的量,即余数。
(我一般用碗盛锅里的饭来形象的思考这个过程,模数为碗的容量)
对于两个整数$a$和$b$,以及正整数$r$,模运算可以表示为:
$$ a\mod m = r $$
其中$r$是$a$除以$m$的余数,满足 $0 \leq r < m$
## 基本性质
* 同余关系
如果 $a \equiv b \mod m$,则$a$和$b$在模$m$下是同余的,意味着$(a-b)$是$m$的倍数。
* 加法性质
对于任意整数 ( a, b ) 和正整数 ( m ):
$$
(a + b) \mod m = [(a \mod m) + (b \mod m)] \mod m
$$
* 减法性质
对于任意整数 ( a, b ) 和正整数 ( m ):
$$
(a - b) \mod m = [(a \mod m) - (b \mod m) + m] \mod m
$$
(加上 ( m ) 是为了确保结果为非负数)
* 乘法性质
对于任意整数 ( a, b ) 和正整数 ( m ):
$$
(a \cdot b) \mod m = [(a \mod m) \cdot (b \mod m)] \mod m
$$
* 幂运算性质
对于任意整数 ( a ) 和正整数 ( m ),以及非负整数 ( k ):
$$
(a^k) \mod m = [(a \mod m)^k] \mod m
$$
* 逆元
在模 ( m ) 的运算中,如果存在整数 ( b ) 使得:
$$ a \cdot b \equiv 1 \mod m $$
则称 ( b ) 为 ( a ) 的模 ( m ) 逆元。逆元存在的条件是 ( a ) 和 ( m ) 互质(即它们的最大公约数为 1)。
* 分配律
模运算遵循分配律:
$$
a \cdot (b + c) \mod m = (a \cdot b \mod m + a \cdot c \mod m) \mod m
$$
* 结合律
模运算也遵循结合律:
- 加法结合律:
$$
(a + (b + c)) \mod m = ((a + b) + c) \mod m
$$
- 乘法结合律:
$$
(a \cdot (b \cdot c)) \mod m = ((a \cdot b) \cdot c) \mod m
$$
* 其他性质
如果 $( a \equiv b \mod m )$ 且 $( c \equiv d \mod m )$,则有:
$( a + c \equiv b + d \mod m )$
$( a - c \equiv b - d \mod m )$
$( a \cdot c \equiv b \cdot d \mod m )$