鸣谢 :感谢@副懿(ID:2503_91588017)帮忙修改本文错误的LaTeX
NOI(全国青少年信息学奥林匹克竞赛) 考纲中的数论部分涵盖了多个重要知识点,主要考察选手对整数性质、模运算、同余理论及算法的理解和应用能力。以下是数论内容的详细分类和说明:
1. 整数与数论基础
-
整除性
- 定义:若 (a=b×q)((a,b,q∈Z),(b≠0))(a = b \times q)((a, b, q \in \mathbb{Z}),(b \neq 0))(a=b×q)((a,b,q∈Z),(b=0)),则称 (b)(b)(b) 整除 (a)(a)(a),记作 (b∣a(b \mid a(b∣a)。
- 性质:传递性、线性组合保持整除性等。
-
最大公约数(GCD)与最小公倍数(LCM)
- 欧几里得算法:高效计算 (gcd(a,b))(\gcd(a, b))(gcd(a,b)) 的递归方法,基于 (gcd(a,b)=gcd(b,a mod b))(\gcd(a, b) = \gcd(b, a \bmod b))(gcd(a,b)=gcd(b,amodb))。
- 扩展欧几里得算法:求解方程 (ax+by=gcd(a,b))(ax + by = \gcd(a, b))(ax+by=gcd(a,b)) 的整数解 ((x,y))((x, y))((x,y)),应用于解线性同余方程。
- LCM与GCD关系:(lcm(a,b)=a×bgcd(a,b))(\text{lcm}(a, b) = \frac{a \times b}{\gcd(a, b)})(lcm(a,b)=gcd(a,b)a×b)。
-
算术基本定理
- 唯一分解定理:任何大于1的整数可唯一分解为质数的幂次乘积,即 (n=p1e1p2e2⋯pkek)(n = p_1^{e_1} p_2^{e_2} \cdots p_k^{e_k})(n=p1e1p2e2⋯pkek)。
- 应用:求约数个数、约数和、GCD/LCM的质因数分解表示等。
2. 同余理论
- 模运算性质
- 基本运算规则:((a±b) mod m=(a mod m±b mod m) mod m)((a \pm b) \bmod m = (a \bmod m \pm b \bmod m) \bmod m)((a±b)modm=(amodm±bmodm)modm),乘法类似。
- 逆元:若 (ax≡1(modm)(ax \equiv 1 \pmod{m}(ax≡1(modm)),则 (x)(x)(x) 为 (a)(a)(a) 模 (m)(m)(m) 的逆元,记作 (a−1)(a^{-1})(a−1)。存在条件:(gcd(a,m)=1)(\gcd(a, m) = 1)(gcd(a,m)=1)。
- 线性同余方程
- 形如 (ax≡b(modm))(ax \equiv b \pmod{m})(ax≡b(modm)) 的方程,解法:
- 检查 (gcd(a,m)∣b)(\gcd(a, m) \mid b)(gcd(a,m)∣b),否则无解。
- 用扩展欧几里得算法求特解,通解为 (x=x0+k⋅mgcd(a,m))((k∈Z))(x = x_0 + k \cdot \frac{m}{\gcd(a, m)})((k \in \mathbb{Z}))(x=x0+k⋅gcd(a,m)m)((k∈Z))。
- 形如 (ax≡b(modm))(ax \equiv b \pmod{m})(ax≡b(modm)) 的方程,解法:
- 中国剩余定理(CRT)
- 求解同余方程组(模数两两互质):
[{x≡a1(modm1)x≡a2(modm2)⋮x≡ak(modmk)] [ \begin{cases} x \equiv a_1 \pmod{m_1} \\ x \equiv a_2 \pmod{m_2} \\ \vdots \\ x \equiv a_k \pmod{m_k} \end{cases} ] [⎩⎨⎧x≡a1(modm1)x≡a2(modm2)⋮x≡ak(modmk)]
解为 (x≡∑aiMiMi−1(modM))(x \equiv \sum a_i M_i M_i^{-1} \pmod{M})(x≡∑aiMiMi−1(modM)),其中 (M=∏mi),(Mi=M/mi),(Mi−1(M = \prod m_i),(M_i = M/m_i),(M_i^{-1}(M=∏mi),(Mi=M/mi),(Mi−1) 为 (Mi)(M_i)(Mi) 模 (mi)(m_i)(mi) 的逆元。
- 求解同余方程组(模数两两互质):
3. 素数相关
- 素数判定
- 试除法:检查 (2)(2)(2) 到 (n)(\sqrt{n})(n) 的整数是否整除 (n)(n)(n),适用于小规模数。
- Miller-Rabin算法:概率性检测,基于费马小定理和二次探测定理,时间复杂度(O(klog3n))(O(k \log^3 n))(O(klog3n)) ((k)(k)(k) 为测试轮数)。
- 素数筛法
- 埃拉托斯特尼筛法:标记合数,时间复杂度 (O(nloglogn))(O(n \log \log n))(O(nloglogn))。
- 线性筛(欧拉筛):每个合数仅被最小质因子筛除,时间复杂度 (O(n)(O(n)(O(n)),可同时求积性函数。
- 费马小定理
- 若 (p(p(p) 为素数且(gcd(a,p)=1)(\gcd(a, p) = 1)(gcd(a,p)=1),则 (ap−1≡1(modp))(a^{p-1} \equiv 1 \pmod{p})(ap−1≡1(modp))。
- 应用:快速计算模逆元(当 (p)(p)(p) 为素数时,(a−1≡ap−2(modp))(a^{-1} \equiv a^{p-2} \pmod{p})(a−1≡ap−2(modp)))。
4. 积性函数与数论函数
- 常见积性函数
- 欧拉函数 (φ(n))(\varphi(n))(φ(n)):小于 (n(n(n) 且与 (n(n(n) 互质的数的个数。若 (n=∏piei)(n = \prod p_i^{e_i})(n=∏piei),则 (φ(n)=n∏(1−1pi))(\varphi(n) = n \prod \left(1 - \frac{1}{p_i}\right))(φ(n)=n∏(1−pi1))。
- 莫比乌斯函数 (μ(n))(\mu(n))(μ(n)):依据质因数分解的指数性质取值(含平方因子时为0,否则为 ((−1)k),(k)((-1)^k),(k)((−1)k),(k) 为质因子个数)。
- 约数函数 (σk(n))(\sigma_k(n))(σk(n)):所有约数的 (k)(k)(k) 次幂和(如 (σ0(n))(\sigma_0(n))(σ0(n)) 为约数个数)。
- 迪利克雷卷积
- 定义:((f∗g)(n)=∑d∣nf(d)g(n/d))((f * g)(n) = \sum_{d \mid n} f(d) g(n/d))((f∗g)(n)=∑d∣nf(d)g(n/d))。
- 性质:积性函数的卷积仍为积性函数。
5. 离散对数与原根
- 离散对数问题(BSGS算法)
- 求解 (ax≡b(modp))(a^x \equiv b \pmod{p})(ax≡b(modp))((p)(p)(p) 为素数):Baby-Step Giant-Step算法将问题转化为 (O(p))(O(\sqrt{p}))(O(p)) 时间复杂度的搜索。
- 原根
- 定义:若 (g(g(g) 模 (m)(m)(m) 的阶为 (φ(m))(\varphi(m))(φ(m)),则 (g)(g)(g) 为模 (m)(m)(m) 的原根。
- 存在性:模 (m)(m)(m) 有原根当且仅当 (m=2,4,pk,2pk)(m = 2, 4, p^k, 2p^k)(m=2,4,pk,2pk)((p(p(p) 为奇素数)。
6. 二次剩余与Legendre符号
- 二次剩余
- 定义:若存在 (x)(x)(x) 使得 (x2≡a(modp))(x^2 \equiv a \pmod{p})(x2≡a(modp))((p)(p)(p) 为奇素数),则 (a)(a)(a) 为模(p)(p)(p) 的二次剩余。
- Legendre符号
- ((ap)=a(p−1)/2(modp))((\frac{a}{p}) = a^{(p-1)/2} \pmod{p})((pa)=a(p−1)/2(modp)),取值:111(是剩余)、−1-1−1(非剩余)、000((p∣a)(p \mid a)(p∣a))。
- Tonelli-Shanks算法:求解二次同余方程 (x2≡a(modp))(x^2 \equiv a \pmod{p})(x2≡a(modp)) 的根。
7. 常见数论算法与技巧
- 快速幂与矩阵快速幂
- 计算 (ab mod m)(a^b \bmod m)(abmodm) 的 (O(logb))(O(\log b))(O(logb)) 方法,应用于大指数运算。
- 卢卡斯定理(Lucas Theorem)
- 组合数模小素数:((nk)≡∏(niki)(modp))(\binom{n}{k} \equiv \prod \binom{n_i}{k_i} \pmod{p})((kn)≡∏(kini)(modp))((ni,ki)(n_i, k_i)(ni,ki) 为 (n,k)(n, k)(n,k) 的 (p)(p)(p) 进制表示)。
- Pollard’s Rho算法
- 大整数分解的随机算法,时间复杂度约 (O(n1/4))(O(n^{1/4}))(O(n1/4))。
典型例题与考点
- GCD与扩展欧几里得:求解线性同余方程或优化路径问题。
- 中国剩余定理:密码学中的模数转换或周期性事件同步。
- 素数筛法:预处理质数表用于高效查询。
- 逆元与组合数:计算大模数下的组合数(如 ((nk) mod 109+7)(\binom{n}{k} \bmod 10^9+7)((kn)mod109+7))。
- 离散对数:哈希冲突或密码学问题。
掌握这些内容需要结合理论推导和代码实现(如快速幂、筛法、CRT等模板),建议通过经典题目(如洛谷、Codeforces的数论题)巩固知识点。