数论相关

仅作为个人学习笔记使用。

大部分参考:同余理论 by Alex_Wei

基础知识

费马小定理

模数 \(p\) 为质数。

\(p \nmid a\) 时,有 \(xa \not\equiv ya\pmod {p}(1\le x,y<p,x\ne y)\),否则会得到 \(x-y\equiv 0\pmod{p}\),矛盾。

考虑 \(1\sim p-1\) 中的所有数,它们乘 \(a\) 后互不相同且不为 \(0\),所以:

\[\prod_{i=1}^{p-1} i \equiv \prod_{i=1}^{p-1}ai\equiv a^{p-1}\prod_{i=1}^{p-1}i\pmod{p} \]

\[(a^{p-1}-1)\prod_{i=1}^{p-1}i\equiv 0 \pmod{p} \]

\[a^{p-1}\equiv 1\pmod{p} \]

乘法逆元

\(O(\log p)\) 在线逆元

由费马小定理有 \(a^{-1}\equiv a^{p-2} \pmod{p}\),要求 \(p\) 是质数。

还有一种方法是 exgcd。

离线 \(O(1)\) 逆元

模板题

要求同时求出 \(n\) 个数 \(a_1\sim a_n\) 的逆元。

求出 \(\prod\limits_{i=1}^{n}a_i\) 的逆元,求 \(a_i\) 逆元时乘上前后缀积即可。

前缀 \(O(n)\) 预处理逆元

模板题

增量法,假设 \([0,i-1]\) 逆元已知,求 \(i\) 的逆元。

\(p=ki+r(0\le r<i)\),则 \(ki+r\equiv 0 \pmod{p}\)

两边同时除以 \(ir\) 可得 $i^{-1}\equiv -kr^{-1}\equiv -\left\lfloor \frac{p}{i} \right\rfloor(p\bmod i)^{-1}\pmod{p} $。

在线 \(O(1)\) 逆元

模板题

博客

Lagrange 定理

\(p\in \mathbb{P}\),对于整系数多项式 \(f(x)=\sum_{i=0}^{n}a_ix^i\),其中 \(p \nmid a_n\)\(x\in \mathbb{Z}_p\),方程至多有 \(n\) 个不同解。

证明可用数学归纳法。

Wilson 定理

一般形式

\(p\in \mathbb{P}\)

\(p>2\) 时,对于方程 \(x^2\equiv 1\pmod{p}\),有且仅有两个解 \(x=1\)\(x=p-1\),于是有 \(\prod\limits_{i=2}^{p-1} i \equiv 1\pmod{p}\)

所以有 \((p-1)!\equiv -1\pmod{p}\),对于 \(p=2\) 也成立,所以对于所有质数 \(p\) 成立。

\(p\) 不是质数时,根据其因子的讨论可以证明 \((p-1)!\equiv -1\pmod{p}\) 一定不成立。

所以 \((p-1)!\equiv -1\pmod{p}\) 成立当且仅当 \(p\) 为质数。

可以证明,\(2\sim p-2\) 两两配对互为逆元。

扩展形式

考虑 \(p^k\) 以内与 \(p\) 互质的数的乘积模 \(p^k\),记为 \((p^k!)_p\),有:

\[(p^k!)_p \equiv \begin{cases} 1, & p = 2 \land k \ge 3; \\ -1, & \text{otherwise} \end{cases} \pmod{p^k} \]

Kummer 定理

阶乘的质数幂次

\(\nu_p(n)\)\(n\) 所包含质因数 \(p\) 的次数,\(s_p(n)\)\(n\)\(p\) 进制下各个数位之和。

有如下结论:

\[\nu_p(n!)=\sum_{i=1}^{\left\lfloor \log_p n \right\rfloor} \left\lfloor \frac{n}{p^i} \right\rfloor \]

\[\nu_p(n!)=\frac{n-s_p(n)}{p-1} \]

组合数的质数幂次

\[\nu_p(\binom{n}{m})=\frac{s_p(m)+s_p(n-m)-s_p(n)}{p-1} \]

步长与子环

在长为 \(n\) 的环上每步走 \(k\) 条边,形成 \(d=\gcd(n,k)\) 个子环,每个子环长 \(\frac{n}{d}\)

\(n\perp k\) 时,从任意一点出发可以遍历所有点。

Euler 定理

一般形式

钦定你会了欧拉函数。

对于 \(a\perp n\)

\(K_n\) 表示模 \(n\) 的约化剩余系,大小为 \(\varphi (n)\)

由类似于费马小定理的证明可以得到:

\[\prod_{x\in K_n} x \equiv \prod_{x\in K_n} ax \pmod{n} \]

所以有:

\[a^{\varphi(n)} \equiv 1 \pmod{n} \]

\(n\) 为质数时,\(\varphi(n)=n-1\),与费马小定理一致。

扩展形式

模板题

\(\gcd(a,n)\ne 1\) 时,不断乘 \(a\) 会使 \(a^i\)\(n\)\(\gcd\) 不断增加,直到某个 \(a^r\) 后不再增加,此时 \(\gcd(a^r,n)\) 的限制由 \(n\) 提供。

\[a^b \equiv \begin{cases} a^{b \bmod \varphi(n)}, & \gcd(a, n) = 1; \\ a^b, & \gcd(a, n) \neq 1, b < \varphi(n); \\ a^{b \bmod \varphi(n)+\varphi(n)}, & \gcd(a, n) \neq 1, b \ge \varphi(n) \end{cases} \pmod{n}. \]

二元线性不定方程

exgcd 用于求解形如 \(ax+by=c\) 的二元线性不定方程。

裴蜀定理

模板题

我们首先要判定一个方程 \(ax+by=c\) 是否有解。

无论 \(x,y\) 取值如何,左式一定是 \(d=\gcd(a,b)\) 的倍数,\(a,b\) 同时除以 \(d\)\(a\perp b\),容易证明 \(ax\bmod b\) 能够取遍所有 \([0,b-1]\) 中的整数。

所以二元整数线性不定方程 \(ax+by=c\) 有解当且仅当 \(\gcd(a,b)\mid c\)

扩展 Euclid 算法 exgcd

模板题

想要解方程 \(ax+by=c\),令 \(d=\gcd(a,b)\),只需求解 \(ax+by=d\),并将解乘上 \(\frac{c}{d}\) 即可。

对于方程 \(ax+by=d\),可以用类似于辗转相除法求 \(\gcd\) 的方式来缩小问题规模求解。

由于 \(d=\gcd(a,b)=\gcd(b,a\bmod b)\),所以 \(bx+(a\bmod b)y=d\) 有解,令解为 \((x',y')\)

\[ax+by=bx'+(a\bmod b)y'=bx'+(a-\left\lfloor \frac{a}{b}\right\rfloor)y'=ay'+b(x'-\left\lfloor \frac{a}{b} \right\rfloor y') \]

\(x=y',y=x'-\left\lfloor \frac{a}{b} \right\rfloor y'\),即可得到一组解。

求出一组解的时间复杂度为 \(O(\log V)\)

exgcd 求出特解的范围一般是:\(\left\lvert x\right\rvert \le \left\lvert \frac{b}{2d}\right\rvert,\left\lvert y\right\rvert\le \left\lvert \frac{a}{2d}\right\rvert\)。详见 ycx's blog

二元线性不定方程的通解形式

首先用 exgcd 找到方程的一组特解 \((x_0,y_0)\)

由于 \(\Delta(ax) + \Delta(by) = 0\),令 \(\Delta=\left\lvert \Delta(ax) \right\rvert=\left\lvert \Delta(by) \right\rvert\),则 \(a,b\mid \Delta\),即 \(\operatorname{lcm}(a,b)\mid \Delta\),所以有 \(\frac{b}{d}\mid \Delta x\)\(\Delta y\) 同理。

\(x\) 增加 \(\frac{b}{d}\)\(y\) 减少 \(\frac{a}{d}\),方程仍成立,所以这个条件是充要的,通解形如:

\[\begin{cases} x = x_0 + \dfrac{b}{d}k \\ y = y_0 - \dfrac{a}{d}k \end{cases} \quad (k \in \mathbb{Z}) \]

应用

  • 对于同余方程 \(ax\equiv b\pmod{p}\),可以转化为 \(ax+py=b\) 求解;
  • \(p\) 不为质数时,求解 \(a\) 的逆元相当于求 \(ax\equiv 1\pmod{p}\) 的解,用上面的方法即可;

线性同余方程组

线性同余方程组是形如以下的方程组:

\[\begin{cases} x \equiv a_1 \pmod{m_1} \\ x \equiv a_2 \pmod{m_2} \\ \dots \\ x \equiv a_k \pmod{m_k} \end{cases} \]

中国剩余定理(CRT)

中国剩余定理用于求解模数两两互质的线性同余方程组。

\(M=\prod_{i=1}^{k}m_i\)

其核心思想是,对于每个同余方程 \(i\),求出一个解 \(x_i\) 满足 \(x_i \equiv a_i \pmod{m_i}\land x_i \equiv 0 \pmod{m_j}(j\ne i)\),那么 \(\sum\limits_{i=1}^{k} x_i\) 即为整个线性同余方程组的一个解。

那么如何求出 \(x_i\) 呢?首先 \(x_i\) 应为 \(\frac{M}{m_i}\) 的倍数,因为 \(x_i \equiv 0 \pmod{m_j}(j\ne i)\),并且还需要满足 \(x_i \equiv a_i \pmod{m_i}\),那么令 \(d_i\)\(\frac{M}{m_i}\) 在模 \(m_i\) 意义下的逆元,则 \(a_id_i\frac{M}{m_i}\) 即为合法的 \(x_i\)

对每个同余方程求出对应 \(x_i\),最后相加即可。

模板题

扩展中国剩余定理(EXCRT)

扩展中国剩余定理用于求解一般形式的线性同余方程组。

其核心思想与 CRT 完全不同,我们希望将两个同余方程依次合并,简化为一个同余方程。

现有两个同余方程:\(x\equiv a_1 \pmod{m_1},x\equiv a_2 \pmod{m_2}\)

由第一个方程,令通解 \(x=p\cdot m_1+a_1\)

代入第二个方程,可得:\(p\cdot m_1\equiv a_2-a_1 \pmod{m_2}\)

这个方程有解当且仅当 \(\gcd(m_1,m_2) \mid (a_2-a_1)\),令 \(g=\gcd(m_1,m_2)\)

两边同时除以 \(g\),可以得到:\(p\cdot \frac{m_1}{g} \equiv \frac{a_2-a_1}{g} \pmod{\frac{m_2}{g}}\)

由于 \(\frac{m_1}{g}\)\(\frac{m_2}{g}\) 互质,所以 \(\frac{m_1}{g}\) 在模 \(\frac{m_2}{g}\) 意义下存在逆元。

所以可以得到 \(p\) 的特解:\(p \equiv \frac{a_2-a_1}{g} \cdot (\frac{m_1}{g})^{-1} \pmod{\frac{m_2}{g}}\)

\(p\) 代回 \(x=p\cdot m_1+a_1\) 可得到 \(x\) 的一个特解 \(x_0\),那么方程就可以合并为:\(x\equiv x_0 \pmod{\operatorname{lcm}(m_1,m_2)}\)

模板题

posted @ 2026-08-05 14:12  Ff472130  阅读(10)  评论(0)    收藏  举报