【初等数论】 06 - 不定方程

  前面介绍的只是初等数论的基本概念,它有很多的应用场景,如果有机会以后我们还会看到,这里我只想单独举出不定方程的例子。不定方程又叫丢潘图方程,它们以整数(或有理数)为变量和参数,而且有两个以上的未知数,多以多项式形式出现。不定方程既是数论的应用,也是数论理论形成的来源,对不定方程的思考会动用起你全部的数论知识。这里仅列举一些简单的问题,作为知识巩固也好,作为娱乐欣赏也行。

1. 一次不定方程

  最简单的不定方程就是一次方程(1),它表现为一个多元线性方程。如果你还记得前面最大公约数的线性组合定义,就容易得到方程有整数解的充要条件是(a1,a2,,an)c。多元方程的第一步往往是降元,令d=(a2,,an),ak=akd,则方程等价于一次方程组(2)(想想为什么?以及为什么要先抽出最大公约数?)。如果对(2)式一直做类似处理,就会得到多个二元一次方程,这样就把问题集中到了简单的情景。

(1)a1x1+a2x2++anxn=c

(2){a1x1+dy=ca2x2++anxn=y

  而对于二元一次方程ax+by=c,它有明显的几何意义,方程的解就是直线方程上的整数点,所有对其讨论都可以从图形中找出。容易看出,如果已知一个解x0,y0,则方程的全部解为公式(3)。至于如何求得一个特解,一般还是用辗转相除法,对于一些简单的情况,也可以直接尝试各种值。

(3){x=x0+b(a,b)ky=y0a(a,b)k,k=0,±1,±2,

2. 商高方程及其扩展

2.1 商高方程

  勾股定理x2+y2=z2大家都熟悉,有一个自然的问题是:如何求它的所有解?这个问题一般叫商高方程或毕达哥拉斯方程。容易证明当(x,y)=1时方程的解两两互素,如果再限定解为正数,这样的解叫本原解。方程的解要么是平凡解(0,0,0),要么是本原解的倍数,因此我们只需专注于找到所有本原解。

  另外,因为素数的平方只能是4k+1的形式,可推得x,y必定是一奇一偶,下面就假设y为偶数,原方程整理为式子(4)。容易证明(z+a2,za2)=1(这个性质以后会经常用),故可设z+a2=r2za2=s2,其中r>s>0,(r,s)=1。用r,s表示x,y,z就得到了方程的解(5),但要注意要使得它们两两互素,还需要限定2r+s(自行证明)。

(4)(y2)2=z+a2za2

(5){x=r2s2y=2rsz=r2+s2r>s>0,(r,s)=1,2r+s

  做一个简单的推广,形如(6)式的方程这么解?这就是著名的费马大定理(Fermat Last Theorem),当然它在1994年被彻底证明前叫费马猜想。费马发现它们并无非平凡解,并声称找到了一个绝妙的证明方法,但由于书的空白太小写不下。后来人经过了三百多年的努力,才用现代数学的方法将它攻破,大家多数倾向于认为费马的证明并不存在或并不成立。

(6)xn+yn=zn

  使用类似的方法和无穷递降法,你可以证明x4+y4=z2无非平凡解,进而x4+y4=z4无非平凡解,它就是费马大定理在n=4时的情况。证明过程你可以作为习题,并且思考一下如下问题:

   求解x2+3y2=z22x2y2=1

   求解1x2+1y2=1z2;(提示:无互质解)

   证明xn+yn=zn±1都有无穷多组解。(提示:构造)

2.2 x3+y3=z3

  再来看费马大定理在n=3的情景,欧拉证明了它没有非平凡解,采用的是无穷递降法。假设x0,y0,z0是使得|xyz|最小的一组非零解,我们的目的是构造一组值更小的解。首先当然有(x0,y0,z0)=1,并且其中仅有一个偶数,经过调整后可以使z0为偶数。这时可以令x0+y0=2u,x0y0=2w,则有z03=2u(u2+3w2)(总结成式(7)),这个变换的重要意义在于降次。

(7)x0+y0=2u,x0y0=2w,z03=2u(u2+3w2)

  现在来研究x3=a2+3b2,其中2x,(a,b)=1,它里面有我们熟悉的二次表达式。考察x的每个素因子p,因为(3p)=1,故总有p=α2+3β2(参考本篇第三段的最后一段)。使用公式(8)(使用复数证明这类等式更容易,并且体现了范数的思想),可知总有x=α2+3β2。下面证明总能找到合适的α,β,使得关系式(9)成立。

(8)(α12+3β12)(α22+3β22)=(α1β1±α2β2)2+3(α1β2α2β1)2

(9)a=α39αβ2,b=3α2β3β3,(a,b)=1,(α,3β)=1

  使用归纳法证明,当x=1时,公式(9)显然成立。若结论对x成立,则考虑(px)3=a2+3b2,我们的目的是找到表达式(9)。由前面的结论可有p3=c3+3d3,且有α1β1c,d满足类似(9)的关系式。与刚才的式子相乘并除以p6得到(10),然后证明(10)式右侧的两项可以都是整数。若记x3=e2+3f2,则由假设知存在α2β2e,f满足类似(9)的关系式。综合以上结论,可得到的相关结论(11),它们满足公式(9),定理得证。

(10)x3=(ac±3bdp3)2+3(ad3bcp3)2

(11)a=ec+3fd,b=edfc,α=α1α2+3β1β2,β=α2β1α1β2

  现在回过头来看式子(7)中的z0。当3u时,由u,w必为一奇一偶且互素(想想为什么)和z0为偶数,容易有(2u,u2+3w2)=1,可以假设式子(12)左侧。而由上面的结论可知(12)的右侧成立,其中最右边三项互质,故有式子(13)。而|x1y1z1|3=|2u|=|x0+y0|<|x0y0z0|3。当3u时可以得到同样的结论,由此我们得到了一组积单调递减的解,这是不可能的,所以原方程没有非平凡解。

(12)t3=2u,s3=u2+3w2,s=α2+3β2t3=2α(α3β)(α+3β)

(13)z13=2α,x13=α3β,y12=α+3β,x13+y13=z13

2.3 ax2+by2+cz2=0

  将商高方程在系数上进行扩展,得到一般性的ax2+by2+cz2=0abc0且无平方因子),当然我们只需研究其本原解(x,y,z)=1。首先容易有(a,yz)=1,则存在y1,z1,变换by2cz2(mod|a|)得到式子(14),从而bc|a|的二次剩余。这样我们就得到了方程有解的一个必要条件:bc,ca,ab分别是|a|,|b|,|c|的二次剩余。

(14)(byz1)2bc(mod|a|)

  下面来看它们是否是方程有解的充分条件,使用的是降次法和构造法。另外,利用同余方程研究不定方程也是常见方法,这里我们可以先考虑同余方程(15)。先来看降次,首先容易判断(a,b,c)=1,则可以有式(16)。对模|b|,|c|也可以有类似的表达式,它们将原式表示成了两个线性表达式之积,问题也就容易转化到一次方程了。使用剩余定理可以将三个表达式的右侧统一成(dx+ey+fz)(dx+ey+fz),再根据同余的性质就有式(17)。

(15)ax2+by2+cz20(mod|abc|)

(16)ax2+by2+cz2b1((by)2(cz)2)(y+b1cz)(bycz)(mod|a|)

(17)ax2+by2+cz2(dx+ey+fz)(dx+ey+fz)(mod|abc|)

  要使方程(15)有解,可以先讨论dx+ey+fz0(mod|abc|),使用鸽笼原理容易得知它有满足条件(18)的解x0,y0,z0。这样我们就得到了方程(15)的解,为方便讨论,下面假设a>0,b<0,c<0,其它情况都可以转化为这种情况。

(18)dx+ey+fz,(0x|bc|,0y|ca|,0z|ab|)

  现在令E=ax02+by02+cz02,比较容易推导出E<ax02abcE>by02+cz022abc,故有E=0E=abc。若E=0,我们就得到了原不定方程的解x0,y0,z0。若E=abc,则乘以ab再配方就有式(19),不管各项是否全为零我们都能找到原方程的解。

(19)a(by0+x0z0)2+b(ax0y0z0)2+c(z02+ab)2=0

  至此充分性证明完毕,总结结论就是:ax2+by2+cz2=0有解的充要条件是bc,ca,ab分别是|a|,|b|,|c|的二次剩余。

3. 平方数分解

  数论中一个著名的问题是把整数表示成若干个平方数之和a=x12+x22++xn2,平方和常出现于范数当中,其重要性不言而喻。我们先把条件设定得宽松一点,假设xk0,如果n=i时对所有a成立,则显然n=i+1时也成立,我们需要讨论有没有最小的n使得所有a都成立。当然问题还可以再做放宽,允许对有限个数不成立。当n=1时,非平方数有无穷多个,故结论不成立。当n=2时,4k+3都不能表示成两个平方和,结论也不成立。

  当n=3时,高斯得到过定理:自然数能表示为3个平方和的充要条件是a4e(8k1),这就说明了n=3时我们要的结论还是不成立。高斯定理的充分性比较复杂,这里仅证明必要性。首先因为x20,1,4(mod8),所以x12+x22+x321(mod8),定理中e=0时成立(其实这一点就已经说明了n=3时结论不成立)。下面利用归纳法,当e=i时必要性成立,如果有4i+1(8k1)=x12+x22+x32,必然有2|xk,从而两边可同时除以4,这与n=i时的必要性成立矛盾,故必要性对一切e成立。

  而幸运的是,当n=4时,我们要的结论终于成立了,它就是著名的拉格朗日定理:任何正整数都可以表示为四个平方数之和(公式(20)),故也称作四平方和定理。这个定理的证明需要用到四平方和恒等式(21),两个四平方和之积也是四平方和。有了这个恒等式,我们的四平方和定理就等价于:任何素数都可以表示为四平方数之和。下面就来证明这个等价命题,注意证明的过程其实也就是寻找分解式的过程。

(20)a=x12+x22+x32+x42

(21)(a12+a22+a32+a42)(b12+b22+b32+b42)=(a1b1a2b2a3b3a4b4)2+(a1b2+a2b1+a3b4a4b3)2+(a1b3a2b4+a3b1+a4b2)2+(a1b4+a2b3a3b2+a4b1)2

  先来证明x2+y2+10(modp)有解(这里的1使得表达式非零)。当x,y各自取遍0,1,,p12时,x2,y21各自遍历p+12个不同的数,所以存在x0,y0满足x02+y02+10(modp)。这个结论说明存在0<m<p使得mp=x12+x22+x32+x42有解,从这里开始,下面我们下面要不断缩小m1

  首先如果d=(x1,x2,x3,x4)>0,则显然d2m,方程两边可以约去d2。其次如果2m,则四个数中必有偶数个奇数,它们可以两两组合为偶数,这样就得到式子(22)。经过以上两步如果仍有m>1,将原式对xk取模m,经过前面类似的整理可以有式子(23)。式(23)和原等式相乘并根据四平方和恒等式,可以有mm2p=u12+u22+u32+u42,并且由恒等式容易证明muk,两边除以m2m<m被再一次缩小。这个过程可以一直进行到m=1,这就完成了证明。

(22)m2p=(x1+x22)2+(x1x22)2+(x3+x32)2+(x3x42)2

(23)mm=y12+y22+y32+y42(0<m<m,0yk<m2)

  现在我们把定理的条件加强一点,如果要求xk>0,结论还成立吗?首先容易证明如果4a,则必有4xk,等式两边可以除以4。利用这个特点并使用归纳法,可以证明24e都不能表示为四个非零平方数之和。当把n=4放宽为n=5时,考虑的分解式(24)。当a=169+x,(x>0时,先将x表示为1 4个非零平方的和,然后从式(24)中选择一个分解,最终总可以将a表示为5个非零平方之和。对于a<169,可以一一验证,除了1 7,9,10,12,15,18,33外都可以分解为5个非零平方之和。这样就有结论,除了几个特殊值外,所有整数都能表示为5个非零平方之和,当然由证明过程知道结论对n=6也是成立的(只是特殊值会不一样)。

(24)169=132=122+52+122+42+33=112+42+42+42=102+62+42+42+12

  做个习题放松一下:

   给出a=2k时的全部解。并由此证明有无穷多个a使得方程不存在(x1,x2,x3,x4)=1的解,有无穷多个a使得方程不存在xk互不相等的解。

  高斯定理给出了n=3时方程有解的充要条件,现在来看n=2时的情景,这个问题也是非常重要的。先来看素数的情况p=x2+y2,显然它有解时必定有p=2p=4k+1。而当p=4k+1时,1p的二次剩余,所以x2+10有解。使用和四平方和定理完全一样的方法(当然也得益于平方和恒等式:平方和之积也是平方和),可以构造出p=x02+y02

  现在回到一般整数a=d2m,其中m无平方因子。由刚才的结论与平方和恒等式,如果m不含素因子4k+3,则它必定能表示为平方和。反之如果m能表示为x02+y02,则它的任何素因子满足x02+y020(modp),故必有p=2p=4k+1。总结以上就有结论:a=d2m可分解为二平方和的充要条件是m不含素因子4k+3

  对n=2时,可以提一个跟严格的问题:方程何时有(x,y)=1的解。其实刚才的证明中已经看出,首先奇素数因子只能为p=4k+1,另外容易证明4a。反之如果p=2p=4k+3,前面的证明中已经表示它能表示为二互素数的平方和。接下来用归纳法可知该结果对pe也成立,用类似方法也能得到pe的组合还是成立。这样就得到结论:整数可分解为二互素数的平方和的充要条件是:不含因子44k+3

  顺便提一下,对p=x2+y2有解的条件,还有一个更通用的证法。首先同样有必要条件(1p)=1,下面来证充分性。证明的主要思路还是构造法,对s21(modp)的解s0,先来构造x0s0y0(modp)。方法很简单,限定(0x,y<p),则xs0y必有模p相等的两个数,相减即得x0s0y0(modp)。然后自然就有x02+y020(modp),又因为x02+y02<2p2,所以就有x02+y02=p。同样的证法也可以得到x2+dy2=p,(d=2,3)有解的充要条件是(dp)=1,但要注意d越大,要排除的情况越多,结论不一定成立。最后思考一些问题:

   求证不能表示为整数平方和的整数也不能表示为有理数的平方和,并讨论有理数能表示为有理数平方和的充要条件;

   证明p=x2+y2的正解唯一。

4. 佩尔方程

  最后再来看一类很重要的方程:佩尔(Pell)方程x2dy2=±1,其中d为非平方正数。方程经过整理可以得到表达式(25),它表示xyd的近似分数。这不由得使我们想到了连分数,尤其是其精度误差,也许只有连分数能达到,下面就来证明这一猜测。令pkqk表示d的第k个连分数,x0,y0是方程的一组正解。

(25)|xyd|=1y2(xy+d)12y2

  首先假设qky0<qk+1,由y0<qk+1并根据渐进连分数的性质有|dqkpk||dy0x0|,从而|dpkqk|<12y0qk。如果y0qk,仅从分数的性质容易得到|pkqkx0y0|1y0qk,而另一方面有式子(26),结合这两个式子可有y0<qk,矛盾。所以必定有y=qk,接下来容易得到x0=pk,从而我们知道方程的解必定是的渐进连分数的分子和分母。

(26)|pkqkx0y0||dpkqk|+|dx0y0|<12y0qk+12y02

  下面就从这些渐进分数中寻找方程的解,通过计算渐进分数,可以得到pk2dqk2=(1)kbk,其中bk为余部的分母(参考课本)。并且从推导过程中可以得到bk仅在ck时为1而不可能为1,其中c为连分数的循环周期。如此一来我们就得到了方程的所有解为phc,qhc,但要注意方程的值只能取±1其一,规律也是明显的,以后不加区分。

  到这里为止,我们似乎已经解决了问题,但方程的解其实还没有一个清晰的表达方法,从方程本身的特点出发,也许还能有进一步的结论。方程的一大特点是等式值为±1,而左边是两个共轭数pk+dqk,pkdqk之积。不妨把方程的解与复数xk=pkc+dqkc一一对应起来,由刚才的讨论可知任何满足xx¯=±1x都是方程的解,并且xk都是方程的解。这样我们自然要问,是否每个xk都可以表示为x1的幂?

  如果有x1k<xm<x1k+1,则有1<xmx1k<x1,而容易证xmx1k=xm(±x¯1k)也是方程的解。但方程不可能有比x1小的解,矛盾,故必然有xk=x1k,即方程的所有解都可以与表达式(27)中的复数一一对应。这样只要知道第一组解,就可以得到所有解,第一组解可以通过简单的遍历尝试得到,有些书上还给出了一定范围内的解的表,可供查阅。

(27)pkc+dqkc=(pc+dqc)k

  最后来考虑一下以下问题:

   求证p=4k+1时,讨论x2py2=±1最小解下方程的取值;

   不使用连分数理论讨论方程x2dy2=1,先证明存在m使得x2dy2=m有无穷多解,然后证明x2dy2=1有解,最后证(x1+py1)k是所有解;

   使用佩尔方程证明,如果x2dy2=n有解,则有无穷多组解;

   证明若佩尔方程x2dy2=1的解满足x0>y0221,则它是最小解。

 


【全篇完】

posted on   卞爱华  阅读(3275)  评论(1编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架

导航

点击右上角即可分享
微信分享提示