数论是研究整数的性质和关系的数学分支!从密码学到编码理论,从算法设计到计算机科学,数论无处不在。
什么是数论?
数论(Number Theory)是研究整数的性质和关系的数学分支。
简单理解
数论就像"研究整数的秘密":
- 整数的整除性
- 素数的性质
- 同余关系
- 最大公约数和最小公倍数
如果存在整数 q,使得 b=aq,则称 a 整除 b,记作 a∣b。
如果 a 不整除 b,记作 a∤b。
- 如果 a∣b 且 b∣c,则 a∣c
- 如果 a∣b 且 a∣c,则 a∣(bx+cy)(x,y 是整数)
- 如果 a∣b 且 b∣a,则 a=±b
最大公约数
最大公约数(Greatest Common Divisor,GCD)d=gcd(a,b) 是同时整除 a 和 b 的最大正整数。
- gcd(a,b)=gcd(b,a)
- gcd(a,b)=gcd(a,b−ka)(k 是整数)
- gcd(a,0)=∣a∣
欧几里得算法
欧几里得算法(Euclidean Algorithm)用于计算最大公约数:
gcd(a,b)=gcd(b,amodb)
算法:
- 如果 b=0,则 gcd(a,b)=a
- 否则,gcd(a,b)=gcd(b,amodb)
例子:gcd(48,18)
- gcd(48,18)=gcd(18,48mod18)=gcd(18,12)
- gcd(18,12)=gcd(12,18mod12)=gcd(12,6)
- gcd(12,6)=gcd(6,12mod6)=gcd(6,0)=6
扩展欧几里得算法
扩展欧几里得算法(Extended Euclidean Algorithm)不仅计算 gcd(a,b),还找到 x,y,使得:
ax+by=gcd(a,b)
应用:求解线性同余方程 ax≡b(modm)
最小公倍数
最小公倍数(Least Common Multiple,LCM)l=lcm(a,b) 是同时被 a 和 b 整除的最小正整数。
gcd(a,b)×lcm(a,b)=∣ab∣
例子:gcd(12,18)=6,lcm(12,18)=36,6×36=12×18=216
素数(Prime Number)是大于 1 且只能被 1 和自身整除的正整数。
合数(Composite Number)是大于 1 且不是素数的正整数。
- 除了 2,所有素数都是奇数
- 有无限 多个素数(欧几里得证明)
- 每个大于 1 的整数都可以唯一分解为素数的乘积(算术基本定理)
素性测试
试除法
试除法是检查 n 是否是素数的最简单方法:检查 n 是否能被 2 到 n 之间的整数整除。
复杂度:O(n)
费马小定理
费马小定理:如果 p 是素数,a 不是 p 的倍数,则:
ap−1≡1(modp)
注意:这是必要但不充分条件。
米勒-拉宾素性测试
米勒-拉宾素性测试(Miller-Rabin Primality Test)是概率性素性测试算法。
如果 a−b 能被 m 整除,则称 a 和 b 模 m 同余,记作:
a≡b(modm)
- a≡a(modm)(自反性)
- 如果 a≡b(modm),则 b≡a(modm)(对称性)
- 如果 a≡b(modm) 且 b≡c(modm),则 a≡c(modm)(传递性)
- 如果 a≡b(modm) 且 c≡d(modm),则:
- a+c≡b+d(modm)
- a−c≡b−d(modm)
- ac≡bd(modm)
- 如果 gcd(c,m)=1,则 ac≡bc(modm) 蕴含 a≡b(modm)
同余方程
线性同余方程:ax≡b(modm)
解的存在性:方程有解当且仅当 gcd(a,m)∣b
解法:使用扩展欧几里得算法
例子:求解 3x≡4(mod7)
- gcd(3,7)=1,所以有解
- 3x≡4(mod7) 等价于 3x+7y=4
- 使用扩展欧几里得算法:3×(−2)+7×1=1
- 所以 3×(−8)+7×4=4
- 因此 x≡−8≡6(mod7)
中国剩余定理
中国剩余定理(Chinese Remainder Theorem)用于求解同余方程组:
x \equiv a_1 \pmod{m_1} \\
x \equiv a_2 \pmod{m_2} \\
\vdots \\
x \equiv a_n \pmod{m_n}
\end{cases}$$
如果 $m_1, m_2, \ldots, m_n$ 两两互质,则方程组有唯一解模 $m_1 m_2 \cdots m_n$。
## 欧拉函数
### 定义
**欧拉函数**(Euler's Totient Function)$\phi(n)$ 是小于 $n$ 且与 $n$ 互质的正整数的个数。
### 性质
- 如果 $p$ 是素数,则 $\phi(p) = p - 1$
- 如果 $p$ 是素数,则 $\phi(p^k) = p^k - p^{k-1}$
- 如果 $\gcd(m, n) = 1$,则 $\phi(mn) = \phi(m) \phi(n)$
### 欧拉定理
**欧拉定理**:如果 $\gcd(a, n) = 1$,则:
$$a^{\phi(n)} \equiv 1 \pmod{n}$$
这是费马小定理的推广。
## 数论的应用
### 密码学
- 🔐 **RSA加密**:基于大数分解的困难性
- 🔒 **公钥密码**:基于数论的密码系统
### 计算机科学
- 💻 **算法设计**:数论算法
- 🔢 **哈希函数**:基于数论的哈希函数
### 编码理论
- 📡 **错误纠正码**:基于数论的编码
- 🔗 **校验和**:基于数论的校验
## 常见错误
### 错误 1:整除和同余混淆
- **整除**:$a \mid b$ 表示 $a$ 整除 $b$
- **同余**:$a \equiv b \pmod{m}$ 表示 $a$ 和 $b$ 模 $m$ 同余
### 错误 2:最大公约数计算错误
要正确使用欧几里得算法。
### 错误 3:同余方程求解错误
要注意同余方程解的存在性和唯一性。
## 小练习
1. 计算 $\gcd(123, 456)$
2. 判断 17 是否是素数
3. 求解 $5x \equiv 3 \pmod{7}$
4. 应用题:在RSA加密中,如何选择两个大素数?
---
> 💡 **小贴士**:数论是研究整数的性质和关系的数学分支。记住:$\gcd(a, b) \times \text{lcm}(a, b) = |ab|$,欧拉定理 $a^{\phi(n)} \equiv 1 \pmod{n}$(当 $\gcd(a, n) = 1$)。掌握数论,你就能理解密码学和编码理论!