---
title: Notes on Module
tags:
  - Chinese Remainder Theorem
  - Combinatorics
  - Lucas's Theorem
  - Multiplicative Inverse
  - Note
  - Prime
id: "1094"
categories:
  - - OI
    - Number Theory
date: 2017-07-07 21:10:53
---

### 逆元

对于模意义下的除法，$a/x \equiv b \pmod m \Leftrightarrow a \times x^{-1} \equiv b \pmod m$，则称$x^{-1}$为$x$在模$m$意义下的逆元。

关于逆元的求法可以参考 Notes on Multiplicative Inverse。

考虑线性同余方程$ax \equiv b \pmod m$，有

$$
(a/(a, m))x \equiv b/(a, m) \pmod {m/(a, m)}
$$

显然，当$(a, m) \not \mid b$时，原方程无解；否则，有

$$
x \equiv (a/(a, m))^{-1} \times (b/(a, m)) \pmod {m/(a, m)}
$$

因此原方程的解为

$$
x \equiv (a/(a, m))^{-1} \times (b/(a, m)) + (m/(a, m)) \times k \pmod m \; (0 \le k \lt (a, m))
$$

原方程可能有多解，也可能无解。

---

### 费马小定理

当$p$是素数时，对任意整数$x$都有$x^p \equiv x \pmod p$。若$p \not \mid x$，则

$$
\begin{align}
x^{p-1} &\equiv 1 \pmod p \\\\
x^{-1} &\equiv x^{p-2} \pmod p
\end{align}
$$

当$m$不是素数且$x$与$m$互质时，有

$$
x^{\varphi(m)} \equiv 1 \pmod m
$$

其中$\varphi(m)$为欧拉函数，其值等于不大于$m$的正整数中与$m$互质的数的个数。

利用线性筛，每次发现质数$p$时把它倍数的欧拉函数乘上$(p-1)/p$，就可以求出$1$到$n$的欧拉函数。

---

### 线性同余方程组

给定由若干个形如$a_ix \equiv b_i \pmod {m_i}$的方程组成的方程组，求它的解。如果有解，则一定有无穷多解，并可以表示为$x \equiv b \pmod m$的形式，因此问题转化为求解$b$和$m$。如果我们能求解方程组

$$
\left\\{
\begin{align}
x &\equiv b_i \pmod {m_i} \\\\
ax &\equiv b_{i+1} \pmod {m_{i+1}}
\end{align}
\right.
$$

那么只要对方程逐个求解即可得到答案。

因为$x \equiv b_i \pmod {m_i}$，所以$x=tm_i+b_i$，代入第二个式子，得到

$$
a(tm_i+b_i) \equiv b_{i+1} \pmod {m_{i+1}}
$$

移项后得到

$$
atm_i \equiv b_{i+1}-ab_i \pmod {m_{i+1}}
$$

这是一个一次同余方程。当$(am_i, m_{i+1}) \not \mid b_{i+1}-ab_i$时原方程组无解。

---

### 中国剩余定理

如果同余方程组满足

$$
\forall i \in [1, n], \; a_i=1 \land \forall i, j \in [1, n] \land i \neq j, \; (m_i, m_j)=1
$$

那么答案的形式一定是

$$
x \equiv b \pmod {\prod m_i}
$$

反之，对于一个合数$n$，如果$n=ab \land (a, b)=1$，那么$x \bmod n$的值确定了之后，$x \bmod a$和$x \bmod b$的值也就确定了。因此，以$n$为模数来考虑和以$a$、$b$为模数来考虑是等价的。这个定理叫做中国剩余定理。

所以，对于模合数的情况只要考虑模若干$p^k$（$p$为素数）的情况就可以了。如果$n$是一个 square-free 的数，那么问题就转化成模素数的情况，从而变得容易求解。

若$n$不是 square-free 的数，可以将每个数字$x$用一个二元组$(a, b)$表示，代表$x=ap_i^b$。有以下运算规则

$$
\begin{align}
(a, b)\times(c, d)&=(ac, b+d) \\\\
(a, b)/(c, d)&=(ac^{-1}, b-d)
\end{align}
$$

关于扩展中国剩余定理可参考 Strange Way to Express Integers。

---

### $n!$

在计数问题中经常用到$n!$。因此有必要了解$n!$在模$p$意义下的一些性质。

假设$p$是素数，$n!=ap^e \; (a \not \mid p)$，求$a \bmod p$和$e$，$e$是$n!$能够迭代整除$p$的次数。显然

$$
e=n/p+n/p^2+n/p^3+ \cdots
$$

因为$n/d$等于不超过$n$的能被$d$整除的正整数个数。

接下来计算$a \bmod p$。可以发现，不能被$p$整除的项在模$p$意义下呈周期性，它们的积为

$$
((p-1)!)^{n/p} \times (n \bmod p)!
$$

事实上，根据威尔逊定理，$(p-1)! \equiv -1 \pmod p$。因为除了$1$和$p-1$之外的其余项都可以和各自的逆元相乘得到$1$。

接下来计算可以被$p$整除的项的积。可以被$p$整除的项为$p, 2p, 3p, \ldots, (n/p)p$，将$p$消去后得到$1, 2, 3, \ldots, n/p$。因此问题的范围就由$n$缩小到了$n/p$。

---

### ${n \choose k} \bmod p$

当$p$不太大时，根据卢卡斯定理，令

$$
n=\sum n_ip^i \; (0 \le n_i \lt p), \; k=\sum k_ip^i \; (0 \le k_i \lt p)
$$

则

$$
{n \choose k} \equiv \prod {n_i \choose k_i} \pmod p
$$

还有另一种思路。首先，把${n \choose k}$写成阶乘的形式

$$
{n \choose k}={n! \over k!(n-k)!}
$$

设

$$
n!=a_1p^{e_1}, \; k!=a_2p^{e_2}, \; (n-k)!=a_3p^{e_3}
$$

从中可以看出，当$e_1 \gt e_2+e_3$时，${n \choose k}$可以被$p$整除；当$e_1=e_2+e_3$时，${n \choose k}$无法被$p$整除，此时${n \choose k} \equiv a_1(a_2a_3)^{-1} \pmod p$。

关于扩展卢卡斯定理可参考 Ceizenpok’s Formula。
