9 年级
一次不定方程
只寻求整数解的一次方程。
直观直觉:用两种面额恰好凑出一个金额
假设你只有 3 元和 5 元的硬币,想恰好付 8 元。你需要每种硬币各若干整数枚,也就是要在整数 x,y≥0 下求解 3x+5y=8——事实上 x=1,y=1 满足,因为 3+5=8。一般性的问题“对哪些整数 a,b,c,ax+by=c 有整数解,又如何求出所有解?”正是一次不定方程理论。
直线 3x+5y=8 改写为 y=−0.6x+1.6:整数解正是该直线经过的格点。中学定义与整除判据
定义: 二元一次不定方程
对整数 a,b,c(满足 (a,b)=(0,0))构成的方程 ax+by=c,若寻求 x,y∈Z 的解 (x,y),则称为一次不定方程。
ax+by=ca,b,c∈Z, (a,b)=(0,0) 并非任意 a,b,c 都能使方程有解:2x+4y=7 无解,因为左边恒为偶数。准确的判据涉及 d=gcd(a,b):方程有整数解当且仅当 d∣c。
d=gcd(a,b)∣c⟺∃x,y∈Z: ax+by=c ax+by=c 的可解性| 条件 | 是否有解? | 解集 |
|---|
| d∣c | 是 | 无穷多解:x=x0+dbt, y=y0−dat |
| d∤c | 否 | 空集 ∅ |
进阶定理与证明(超出课程范围)
对不全为 0 的整数 a,b,存在整数 u,v 使得 au+bv=gcd(a,b)。
为什么成立?
它说明最大公约数不仅是“最大的公共因子”,而且确实可以表示为 a 与 b 的整数组合——这正是使 ax+by=c 可解性判据成立的关键事实。
证明
考虑集合 S={au+bv:u,v∈Z}∩Z>0,即 a 与 b 的所有严格正整数组合。由于 a,b 不全为 0,S 非空(含 ∣a∣ 或 ∣b∣),由良序原理 S 有最小元 d=au0+bv0>0。
证明 d∣a:作带余除法 a=qd+r,0≤r<d。则 r=a−qd=a−q(au0+bv0)=a(1−qu0)+b(−qv0) 本身就是 a,b 的整数组合。若 r>0,则 r 属于 S 且小于 d,与最小性矛盾;故 r=0,即 d∣a。将 a 换成 b 做同样论证得 d∣b。
由于 d 是 a 与 b 的公约数,d≤gcd(a,b)。反之,a 与 b 的任意公约数 e 都整除 au0+bv0=d,故 e≤d;取 e=gcd(a,b) 得 gcd(a,b)≤d。
结合两个不等式得 d=gcd(a,b),而由构造 d=au0+bv0,这正是 u=u0,v=v0 时的裴蜀等式。
ax+by=c 有整数解当且仅当 d∣c(其中 d=gcd(a,b));此时,若 (x0,y0) 是一个解,则所有整数解恰好是 x=x0+dbt, y=y0−dat (t∈Z)。
为什么成立?
它彻底解决了问题:一次整除检验就能判定可解性,一旦得到任意一个解,一个关于 t 的单参数族就给出所有其余的解——无需猜测。
证明
(⇒)若 (x,y) 是整数解,则 d=gcd(a,b) 同时整除 ax 和 by,故整除 ax+by=c。因此 d∣c 是必要条件。
(⇐)设 d∣c,记 c=de。由裴蜀等式存在 u0,v0 使 au0+bv0=d。两边乘以 e 得 a(u0e)+b(v0e)=de=c,故 (x0,y0)=(u0e,v0e) 是一个整数解。这证明了可解性。
现固定一个解 (x0,y0),设 (x,y) 为任意另一个解。用 ax+by=c 减去 ax0+by0=c 得 a(x−x0)+b(y−y0)=0,即 a(x−x0)=−b(y−y0)。两边除以 d:da(x−x0)=−db(y−y0),由于 gcd(a/d,b/d)=1,因子 db 必整除 x−x0(互素的标准推论:若 p∣mn 且 gcd(p,m)=1 则 p∣n)。故 x−x0=dbt,其中 t 为某整数,代回得 y−y0=−dat。
反之,对任意整数 t,将 x=x0+dbt, y=y0−dat 代入 ax+by 得 ax0+by0+t(dab−dab)=c+0=c,验证了每一对这样的数确实都是解。因此解集恰好是 x=x0+dbt, y=y0−dat (t∈Z)。
进阶实际应用与典型例题
求解 ax+by=c 不仅是课堂练习:产生裴蜀系数的扩展欧几里得算法正是 RSA 密钥生成中求模逆元所用的方法,同样的格点推理也支撑着计算机图形学算法(如 Bresenham 画线算法)判断一条直线经过哪些整数像素的方式。
例题: 完全求解 3x+5y=8
求 3x+5y=8 的所有整数解,以及其中非负 x 最小的解。
解答
运行欧几里得算法:5=1⋅3+2,3=1⋅2+1,2=2⋅1+0,故 gcd(3,5)=1,它整除 8,所以方程有解。
回代:1=3−1⋅2=3−1⋅(5−1⋅3)=2⋅3−1⋅5。两边乘以 8:2⋅3⋅8−1⋅5⋅8=8⋅1,即 3⋅16+5⋅(−8)=8,得一个解 (x0,y0)=(16,−8)。
由 d=1 时的通解定理,所有解为 x=16+5t, y=−8−3t,t∈Z。取 t=−3 得 x=16−15=1, y=−8+9=1,与硬币例子吻合。
在所有 t 中,x=16+5t≥0 在 t≤−4(给出 x=−4)时不再成立,故非负 x 最小时对应 t=−3:(x,y)=(1,1)。
例题: RSA 密钥生成:求模逆元
在 RSA 中,公钥指数 e=7,φ(n)=40,求满足 7d≡1(mod40) 的私钥指数 d。
解答
同余式 7d≡1(mod40) 等价于关于某整数 k 的一次不定方程 7d−40k=1。
欧几里得算法:40=5⋅7+5,7=1⋅5+2,5=2⋅2+1,2=2⋅1+0,故 gcd(7,40)=1,确认逆元存在。
回代:1=5−2⋅2=5−2⋅(7−1⋅5)=3⋅5−2⋅7=3⋅(40−5⋅7)−2⋅7=3⋅40−17⋅7。故 7⋅(−17)+40⋅3=1,得 d≡−17(mod40)。
化到标准范围:d≡−17+40=23(mod40)。验证:7×23=161=4×40+1,确认 d=23 是此示例密钥正确的 RSA 私钥指数。
关于 d=gcd(a,b) 的哪个条件决定 ax+by=c 是否有整数解?
裴蜀等式保证了哪些整数的存在?
若 (x0,y0) 是 d=gcd(a,b) 下 ax+by=c 的解,通解为 x=x0+dbt,则 y= ?
用于求解一次不定方程的扩展欧几里得算法,也是计算哪种密码学量的标准方法?