所以说数学就是这样一种东西:她提醒你有无形的灵魂,她赋予她所发现的真理以生命;她唤起心神,澄净智慧;她给我们的内心思想添辉;她涤尽我们有生以来的蒙昧与无知。
普罗克洛斯(Proclus,410-485)
山峰之巅的月亮
一次不定方程有悠久历史,在西方最早见于丢番图的著作中。虽然丢番图研究不定分析问题取得了丰富成果,展现了高超的解题技巧,但是没有掌握深刻的数学原理,不能产生普适的数学结论,局限于一题一法。欧洲直到18世纪,数学大师欧拉(1707~1783)才首次提出一次不定方程的一般解法。接下来介绍高斯的经典著作《算术研究》记载的渐近分数解法。
条目27
现在剩下的事是补充一些关于如何求解同余方程的知识。
首先我们观察到:假设模与a互质,形如ax+t≡u的同余方程的解依赖于ax≡±1;因为如果x≡r满足后者,x≡±(u-t)r就满足前者。因为同余方程ax≡±1(mod b)等价于不定方程ax=by±1,并且我们现在已经熟悉如何求解这种方程,所以我们只要写出求解不定方程的算法即可。
......
当α,β,γ,…,μ,n项数为偶数,我们就有ax=by+1;当α,β,γ,…,μ,n项数为奇数,ax=by-1。证明完毕。
条目28
欧拉是提出这种类型的不定方程的通解的第一人。在他的方法中,他用其他变量代替x,y,现在这个方法大家很熟悉。拉格朗日处理这个问题的方法有些不同。正如他指出的,从连分数的理论可知,如果分数b/a可以变换为连分数
连分数·算术研究
此处应该有图片(连分数·算术研究)
并且,如果把最后部分删去,结果就变回普通分数x/y。当a和b互质,即ax=by±1。而且,从两种方法可以推导出同样的算法。拉格朗日的研究出现在Hist. Acad. Berlin(1767)第173页,以及他为欧拉的《代数》法语译本所写的附录上。
以上引自高斯原著《算术研究》,重庆出版社2020年版。
例题1 求方程31x+12y=365的全部整数解。
题目解析:因为31和12互质,所以方程有解,有无数个整数解。如果方程ax+by=c,未知数系数a和b不是互质的,存在最大公约数d,那么c能够被d整除则方程有整数解,不能被d整除则方程无整数解。也就是说,如果方程不能化成d(a₁x+b₁y)=c₁d(所有字母都是整数),则方程没有整数解。
高斯指出,解方程的关键在于求出aq-bp=±1。
第一步,把a/b展开为连分数[a₀;a₁,a₂,a₃,...,aₙ]。
31/12=[2;1,1,2,2]
第二步,把连分数[a₀;a₁,a₂,a₃,...,aₙ]去掉最后一项,得连分数[a₀;a₁,a₂,a₃,...,aₙ₋₁],化简为普通分数p/q.这个分数称为渐近分数,有的国外数学书把渐近分数称为收敛子。
[2;1,1,2]=13/5
1+½=3/2,再求倒数得2/3,再+1得5/3,求倒数得3/5,再+2得10/5加3/5即得13/5.
第三步,把p和q的值代入方程aq-bp=±1.高斯指出,如果渐近分数的项数为奇数,则方程右边为-1,项数为偶数,方程右边为+1.
31q-12p=-1,即
31×5-12×13=155-156=-1
第四步,用方程的左边乘以原方程的右边,并引进参数t,即可求出全部整数解。
按以上步骤操作,先求
31q-12p=±1
∵31/12=[2;1,1,2,2]
∴p/q=[2;1,1,2]=13/5
即p=13,q=5
因为商数列1,1,2有3项(项数为奇数),所以31q-12p=-1,从而
31(12-q)-12(31-p)=1,即
31u-12v=1
u=12-q=7,v=31-p=18
所以
x=cu-bt=365×7-12t=2555-12t
y=at-cv=31t-365×18=31t-6570
当aq-bp=1时,可以得到不定方程的全部整数解如上图所示
渐近分数[2;1,1,2]分号后面假如有偶数项,则有aq-bp=1
例题的不定方程有特定含义的,是由猜生日的游戏产生的。x代表某月,y代表某日。所以x是1到12的某个自然数,y是1到31的某个自然数。
现在我们来求方程的最小正整数解,揭晓这个日期:
当t=212时,x=?y=?
答案见下图,代表某月某日。
知识概括连分数理论和辗转相除法
中学数学删除了连分数的内容,这是一个遗憾。在高等数学里,连分数是很有用的重要的数学工具。
求a和b的最大公约数常用辗转相除法(国外称为欧几里得算法)
做一个带余除法,可得下式:
(1) a=a₀b+r,0≤r≤b.
上面的(1)式是最基本的式子,辗转相除法的灵魂。
可以这样理解,被除数=商×除数+余数。
一般理论是把辗转相除法写成
a=a₀b+r,
b=a₁r+r₁,
r=a₂r₁+r₂,
r₁=a₃r₂+r₃,
......
rₙ₋₁=aₙ₊₁rₙ+rₙ₊₁,
rₙ=aₙ₊₂rₙ₊₁.
最大公约数d=rₙ₊₁
即gcd(a,b)=d=rₙ₊₁
小学数论有一个漂亮的公式:
a和b的最大公约数(greatest common divisor)记作gcd(a,b)
a和b的最小公倍数(least common multiple)记作lcm(a,b)
举个例子,请看下图:
求31和12的最大公约数过程如下:
31=2×12+7
12=1×7+5
7=1×5+2
5=2×2+1
2=2×1
或者写成
gcd(31,12)=gcd(12,7)=gcd(7,5)=gcd(5,2)=gcd(2,1)=1
括号里面的两个数越来越小,当两数成倍数关系时,较小数就是最大公约数。
由辗转相除法的商数列可知,分数31/12的连分数展开为
31/12=[2;1,1,2,2],这是一个4阶连分数,依次分段截取得到3个渐近分数:31/12≈[2;1]和
31/12≈[2;1,1]及31/12≈[2;1,1,2]。
化简后这三个渐近分数是3/1和5/2及13/5,它们交替从上方和下方逼近准确值31/12,误差越来越小,正偏差和负偏差交替出现。所以渐近分数这个命名很生动形象。
一个有理数总是可以在有限步骤内展开为连分数。
要点1:一个分数取倒数就是分子和分母对调位置;
要点2:连分数的分子都是1;
要点3:分子如果不是1就进行取倒数的操作;
要点4:分母为整数+分数;
要点5:分子出现1意味着两数成倍数关系,连分数的展开到此为止。
总结和回顾现在谈谈以上解法的原理和依据,介绍三个定理。
辗转相除法不但给出了求最大公约数d(可能是1)的高效算法,还可以帮助我们找到m和n,使得am+bn=d。
定理1 如果gcd(a,b)=d,则存在m、n,使得am+bn=d。
例二 找到方程42897m+18644n=79的整数解。
42897=2×18644+5609,(i)
18644=3×5609+1817,(ii)
5609=3×1817+158,(iii)
1817=11×158+79,(iv)
158=2×79.
所以有
42897/18644=[2;3,3,11,2]
=543/236
m/n=[2;3,3,11]=260/113
即m=-113,n=260.
260×18644-113×42897=79
这个定理有一个特例,当d=1时,有
推论 如果a,b互质,则一定存在p,q∈Z,使得aq+bp=±1.
利用渐近分数可以求得p,q。我们已经知道,1的符号取决于渐近分数的项数的奇偶性。
举个例子。47x+17y=168
更正:应为a/b=47/17
解:47/17=[2;1,3,4],渐近分数是[2;1,3]=11/4,因为项数为偶数,所以得到+1,即
47×4-17×11=188-187=1.
当aq+bp=1时,方程ax+by=c的整数解为:x=cq-bt,y=at-cp;
当aq+bp=-1时,方程ax+by=c的整数解为:x=bt-cq,y=cp-at;
定理2 如果a,b互质,c∈Z,则一定存在整数x,y,使得ax+by=c成立。
这个定理是我们解不定方程的理论依据,解决了确定一个不定方程是否有整数解的问题。
定理3 如果a,b互质,且a,b,c∈Z⁺,已知方程ax+by=c有一组整数解:x=x₀和y=y₀,则方程的全部整数解为:x=x₀-bt,y=y₀+at,t∈Z。
我们知道不定方程有无穷多组整数解,这个定理解决了求方程所有整数解的问题。
这个定理容易理解。已知ax₀+by₀=c成立,那么,
a(x₀-bt)+b(y₀+at)=c显然也成立。
所以,欲求ax+by=c的整数解,可以先求aq+bp=1这一组整数解。
比如利用渐近分数得到一组整数解x=q,y=-p,那么立即得到ax+by=c的一组整数解为
x₀=qc,y₀=-pc,从而得到全部整数解为:
x=x₀-bt,y=y₀+at,t∈Z。
我国古代数学家在《九章算术》的年代就有不定方程的应用题。南宋数学家秦九韶给出了不定方程的一般解法:当a和b互质时用大衍求一术解,当a和b不互质时,用大衍总数术解。
印度数学家因为天文学的需要,对不定方程研究造诣颇深。婆什迦罗在他的著作《丽罗娃蒂》中解不定方程的一般解法称为“库塔卡”,本质同于辗转相除法。
一次不定方程和一次同余式有密切关系,请大家参阅《算术研究》或陈景润的《初等数论》等相关的数论著作。
再看一道例题结束本文。例2求方程47x+17y=1的全部整数解。
解 47/17=[2;1,3,4]
p/q=[2;1,3]=11/4,即
47×4-17×11=188-187=1
所以
x=4-17t,y=47t-11.
科学尚未普及,媒体还需努力。感谢阅读,再见。