ACM数论学习(复习)笔记-1
部分摘自oiwiki
linke
整除的基本性质
-
符号等价性
\(a \mid b \ \Leftrightarrow \ -a \mid b \ \Leftrightarrow \ a \mid -b \ \Leftrightarrow \ |a| \mid |b|\) -
传递性
\(a \mid b \ \land \ b \mid c \ \implies \ a \mid c\) -
线性组合性质
\(a \mid b \ \land \ a \mid c \ \Leftrightarrow \ \forall x, y \in \mathbb{Z}, \ a \mid (xb + yc)\) -
互整除对称性
\(a \mid b \ \land \ b \mid a \ \implies \ b = \pm a\) -
倍数缩放性(设 \(m \neq 0\))
\(a \mid b \ \Leftrightarrow \ ma \mid mb\) -
非零约束性(设 \(b \neq 0\))
\(a \mid b \ \implies \ |a| \leq |b|\) -
带余除法关联性(设 \(a \neq 0\),且 \(b = qa + c\))
\(a \mid b \ \Leftrightarrow \ a \mid c\)
一、整除:数学里的“完美分蛋糕”
什么是整除?
假设你有一块蛋糕(比如数字12),如果能把它切成若干块一样大的小份,且没有剩余,就说这个分法“整除”了蛋糕。
比如:
- 3整除12,因为12 ÷ 3 = 4(切成4块,每块3)
- 5不整除12,因为12 ÷ 5 = 2.4(切不干净,还剩0.4块)
关键性质:
- 传递性:如果3能整除6,6能整除12,那3一定能整除12。就像“小盒子装进中盒子,中盒子装进大盒子”。
- 组合性:如果5能整除10和15,那5也能整除它们的任意组合,比如 (10×2 + 15×3 = 65),而5当然能整除65!
二、最大公约数(GCD):找“共同好友”
什么是GCD?
比如你有两个数24和36,它们的“公约数”是能同时整除它们的数(比如2, 3, 6, 12)。而最大的那个共同约数,就是它们的GCD——这里是12。
为什么重要?
想象你要把24颗糖和36块饼干平均分给一群小朋友,最多能分给多少孩子,且每人拿到整数颗糖和饼干?答案就是GCD(24,36)=12,分给12个孩子,每人2颗糖+3块饼干。
三、欧几里得算法(GCD算法):用减法拆解问题
最笨的方法:先列出24和36的所有约数,再找最大的。但数大了会累死人!
欧几里得的聪明办法:用“除法余数”层层简化问题。
操作步骤(以48和18为例):
- 用大的数除以小的数:48 ÷ 18 = 2 余12
- 现在问题变成找 GCD(18, 12)
- 重复:18 ÷ 12 = 1 余6 → GCD(12,6)
- 最后:12 ÷ 6 = 2 余0 → GCD(6,0)=6
为什么可以这么做?
关键思想:如果某个数d能同时整除a和b,那它一定能整除a除以b的余数。就像“能同时装进大箱和小箱的盒子,一定能装进大箱减去小箱后剩下的空间”。
四、贝祖定理:原来方程可以这样解!
贝祖定理:对于任何整数a和b,一定存在整数x和y,使得 (ax + by = \gcd(a,b))。
举个例子:
比如a=48,b=18,它们的GCD是6。那么存在x和y,使得48x + 18y = 6。
实际解:x=-1,y=3(因为48×(-1) + 18×3 = -48 + 54 = 6)。
这个定理多有用?
比如在密码学中,RSA算法生成密钥时就需要用这个方程来找模逆元。
五、扩展欧几里得算法(ExGCD):反向追踪答案
目标:不光算GCD,还要找到贝祖定理中的x和y。
操作步骤(以48和18为例,用“倒推法”讲故事):
-
先按欧几里得算法走到底:
- 48 = 18×2 + 12
- 18 = 12×1 + 6
- 12 = 6×2 + 0 → GCD=6
-
从最后一步倒着推x和y:
- 最后一步:6 = 18 - 12×1
- 倒数第二步:12 = 48 - 18×2 → 把12代入上式:
[
6 = 18 - (48 - 18×2)×1 = 18×3 - 48×1
] - 所以x=-1,y=3(因为等式是48×(-1) + 18×3 =6)
ExGCD的递归思路:
每次递归时,把当前余数用上一步的式子表示,逐步回溯拼出x和y。就像玩拼图,从最后一块倒着拼回去。

浙公网安备 33010602011771号