Skip to content

5.4.2 线性丢番图方程

1. 丢番图方程

方程 f(x1,x2,,xn)=b 称作 n 个未知数的丢番图 (Diophantine) 方程,当且仅当 f(x1,x2,,xn)x1,x2,,xn 的系数在整数集 Z 中的多项式, b 是一个整常数, 并且仅考虑整数解. 命名 “丢番图” 是为纪念希腊数学家丢番图, 他生活在公元 250 年前后.

在实际中, 丢番图方程出现在, 例如, 数量之间关系的刻画中. 迄今只有 2 个未知数并且至多两次的丢番图方程的一般解是已知的. 仅在特殊情形才知道高次丢番图方程的解.

2. n 个未知数的线性丢番图方程

n 个未知数的线性丢番图方程是指形如

(5.240)a1x1+a2x2++anxn=b(aiZ,bZ)

的方程, 这里仅求整数解. 下面给出它的解法.

3. 可解性条件

如果系数 ai 不全为零,那么丢番图方程 (5.240) 可解,当且仅当 gcd(a1,a2, , an)b 的因子.

114x+315y=3 可解,因为 gcd(114,315)=3 .

如果一个含 n(n>1) 个未知数的线性丢番图方程有解,而 Z 是变量区域,那么方程有无穷多解. 于是在解集中有 n1 个自由变量. 对于 Z 的子集,这个命题不正确.

4. n=2 时的解法

(5.241a)a1x1+a2x2=b(a1,a2)(0,0)

是一个可解的丢番图方程,即有 gcd(a1,a2)b . 为了求方程的特解,用 gcd(a1,a2) 除方程,我们得到 a1x1+a2x2=b ,其中 gcd(a1,a2)=1 . 如在第 500 页 5.4.1.4,4. 中所指出的,确定 gcd(a1,a2) 最终可得到 a1a2 的线性组合: a1c1+a2c2=1 . 代入给定方程可以证明有序整数对 (c1b,c2b) 是所给丢番图方程的一组解.

114x+315y=6 . 因为 3=gcd(114,315) ,所以用 3 除方程. 这蕴涵 38x+ 105y=2 ,以及 3847+105(17)=1 (参见第 500 页 5.4.1.4,4.). 有序组 (472,(17)2)=(94,34) 是方程 114x+315y=6 的一个特解.

可求得(5.241a)的解集如下: 如果 (x10,x20) 是任意一个特解,它也可以用平凡的方法得到, 那么

(5.241b){(x10+ta2,x20ta1)tZ}

是所有解的集合.

方程 114x+315y=6 的解集是 {(94+315t,34114t)tZ} .

5. n>2 时的归约方法

设给定可解的丢番图方程

(5.242a)a1x1+a2x2++anxn=b,

其中 (a1,a2,,an)(0,0,,0) ,并且 gcd(a1,a2,,an)=1 . 如果 gcd(a1 , a2,,an)1 ,那么可用 gcd(a1,a2,,an) 除方程. 作变换

(5.242b)a1x1+a2x2++an1xn1=banxn

后,将 xn 看作一个整常数,得到一个含有 n1 个变量的线性丢番图方程,因而它当且仅当 gcd(a1,a2,,an1) 整除 banxn 时可解.

条件

(5.242c)gcd(a1,a2,,an1)banxn

被满足,当且仅当存在整数 c,cn 使得

(5.242d)gcd(a1,a2,,an1)c+ancn=b.

这是两个未知数的线性丢番图方程, 并且它可以如同第 503 页 5.4.2, 4. 那样求解. 如果确定了它的解,那么剩下要解只有 n1 个未知数的丢番图方程. 继续这个过程直到得到两个未知数的丢番图方程, 这可用第 503 页 5.4.2, 4. 给出的方法求解. 最后, 所给方程的解由这样得到的解集构造出来.

解丢番图方程

(5.243a)2x+4y+3z=3.

因为 gcd(2,4,3)=1 是 3 的因子,所以这个方程可解. 未知数为 x,y 的丢番图方程

(5.243b)2x+4y=33z

当且仅当 gcd(2,4)33z 的因子时可解. 对应的丢番图方程 2z+3z=3 有解集 {(3+3t,32t)tZ} . 这蕴涵 z=32t ,并且现在要对于每个 tZ 求出可解丢番图方程 2x+4y=33(2t)

(5.243c)x+2y=3+3t

的解. 因为 gcd(1,2)=1(3+3t) ,所以方程(5.243c)可解. 现在有 1(1)+21=1 , 以及 1(33t)+2(3+3t)=3+3t . 解集是 {((33t)+2s,(3+3t)s)sZ} . 这蕴涵 x=(33t)+2s,y=(3+3t)s ,并且这样得到的 {(33t+2s,3+ 3ts,32t)s,tZ} 就是(5.243a)的解集.

version 1.24.0