• C++
  • 取模(取余)核心公式

  • @ 2026-4-26 17:37:55

取模(取余)核心公式

设:a,b,ma,b,m 为整数,m>0m>0mod\bmod 为取模运算

一、基础恒等公式

  1. 定义式
$$a \bmod m = a - m \times \left\lfloor \frac{a}{m} \right\rfloor $$
  1. 同余基础ab(modm)a \equiv b \pmod{m},则:
amodm=bmodma\bmod m = b\bmod m

二、四则运算取模(最常用)

1. 加法取模

$$(a+b) \bmod m = \big[(a\bmod m)+(b\bmod m)\big] \bmod m $$

2. 减法取模

$$(a-b) \bmod m = \big[(a\bmod m)-(b\bmod m)+m\big] \bmod m $$

mm 防止出现负数

3. 乘法取模

$$(a\times b) \bmod m = \big[(a\bmod m)\times(b\bmod m)\big] \bmod m $$

4. 幂运算取模(快速幂核心)

akmodm=(amodm)kmodma^k \bmod m = \big(a\bmod m\big)^k \bmod m

三、拓展公式

  1. 结合多因子
$$(a_1+a_2+\dots+a_n)\bmod m=\left(\sum_{i=1}^n (a_i\bmod m)\right)\bmod m $$$$(a_1a_2\cdots a_n)\bmod m=\left(\prod_{i=1}^n (a_i\bmod m)\right)\bmod m $$
  1. 负数取模修正
(a)modm=(mamodm)modm(-a) \bmod m = (m - a\bmod m) \bmod m
  1. 模的拆分m=p×qm=p\times qp,qp,q 互质:
$$\begin{cases} x\equiv a\pmod p\\ x\equiv b\pmod q \end{cases} \Rightarrow 中国剩余定理求解$$

四、编程常用结论(C/C++、Python)

  1. 先取模再运算,防止爆 long long
  2. 减法一定要 +mod 再取模 避免负余数 示例:
ans = (a - b + mod) % mod;
ans = 1LL * a * b % mod;

需要我给你几道取模公式的例题+演算吗?方便直接套用刷题。

0 条评论

目前还没有评论...