数论:不定方程的引入

发布于:2024-05-08 ⋅ 阅读:(23) ⋅ 点赞:(0)

研究的对象:不定方程

不定方程引入:

不定方程,又称丢番图方程,定义为:未知数为整数,系数也为整数的多项式等式。

形如 a 1 x 1 b 1 + a 2 x 2 b 2 + . . . + a n x n b n = c a_1x_1^{b_1} + a_2x_2^{b_2}+...+a_nx_n^{b_n} =c a1x1b1+a2x2b2+...+anxnbn=c

如果我们能找到一组整数解: x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,我们就说这个方程有解。

但是我们并不研究不定方程的一般式,而是研究其特殊的形式,即一次不定方程:

a 1 x 1 + a 2 x 2 + . . . + a n x n = c a_1x_1 + a_2x_2+...+a_nx_n =c a1x1+a2x2+...+anxn=c

这个一次不定方程有解的充要条件是:

g c d ( a 1 , a 2 , . . , a m ) ∣ c gcd(a_1,a_2,..,a_m)|c gcd(a1,a2,..,am)c (即c为这n个数的倍数的时候,该一次不定方程有解)

这个推论是由二元一次不定方程有解的情况归纳而来:

即:
对于二元一次不定方程: a x + b y = c ax+by=c ax+by=c

此方程有解的充要条件是 : g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c

这个结论是裴蜀定理的证明:下面将引出裴蜀定理。

裴蜀定理与不定方程的解有什么关系??

裴蜀定理给出:

对于任何整数 a , b , m a,b,m abm,关于未知数 x , y x,y x,y 的一元二次不定方程 a x + b y = m ax+by = m ax+by=m

此方程有解的充要条件 g c d ( a , b ) ∣ m gcd(a,b)|m gcd(a,b)m,由于只给了一个不定方程,所以整数解有无穷多个,每一组(x,y)都被称为裴蜀数


裴蜀定理证明:

由于是任意整数 a , b a,b a,b

所以我们先考虑0的情况:

1、当 a = 0 a = 0 a=0

该不定方程为: b y = m by = m by=m , 此方程有整数解,当且仅当 b   ∣   m b\:|\:m bm​ 。

可以写成 g c d ( 0 , b ) ∣ m gcd(0,b)|m gcd(0,b)m

写到这里突然有个想法, g c d ( 0 , b ) gcd(0,b) gcd(0,b)​ 这样的写法是合法的吗?

公约数的定义:如果有一个数 d d d, 对于 a 1 , a 2 , a 3 , . . . , a n a_1,a_2,a_3,...,a_n a1,a2,a3,...,an,都有 d ∣ a i , i ∈ [ 1 , n ] d|a_i,i\in[1,n] dai,i[1,n]

这样的数就被称为这些数的公约数。

a 1 , a 2 , a 3 , . . . , a n a_1,a_2,a_3,...,a_n a1,a2,a3,...,an的所有公约数放入集合 D D D中, D = { d ; d ∣ ( a 1 , a 2 , a 3 , . . . a n ) } D=\lbrace d;d|(a_1,a_2,a_3,...a_n)\rbrace D={d;d(a1,a2,a3,...an)}

最大公约数gcd的定义是: d m a x ∈ D d_{max}\in D dmaxD,使得 ∀ d ∣ d m a x \forall d|d_{max} ddmax,其中 d m a x d_{max} dmax被称为 g c d gcd gcd

0 0 0能被任意非 0 0 0数整除, b b b最大只能被 b b b整除。

当只要求 2 2 2个整数的最大公约数的时候,有一方为 0 0 0,那么它们的最大公因数就是另一个非零数本身。


都讲到这里了,顺便在写一下欧几里得算法的证明:

欧几里得算法证明:

考虑 g c d ( a , b ) = g c d ( b , a   m o d   b ) gcd(a,b) = gcd(b,a\:mod\:b) gcd(a,b)=gcd(b,amodb) 的证明:(面向结果证明)

任意一个整数可以写成带余除法(因为要用到 a   m o d   b a\:mod\:b amodb 的形式,所以将 a a a写成关于 b b b的带余除法: a = k b + c a = kb+c a=kb+c , c = a   m o d   b c = a \:mod \:b c=amodb 并约定 ( b ≠ 0 ) (b\neq0) (b=0)

d d d a , b a,b a,b的最大公约数。

有: d ∣ a ,   d ∣ b d|a ,\: d|b da,db。​

两边同时除以d: a d = k b d + c d \frac{a}{d} = k\frac{b}{d}+\frac{c}{d} da=kdb+dc

由于 a d , b d \frac{a}{d},\frac{b}{d} da,db都是整数,所以 c d \frac{c}{d} dc也是一个整数。

这说明 d ∣ c d|c dc , 这说明 d d d ( a , b , c ) (a,b,c) (a,b,c)​的最大公约数。

所以得到了最终的转移式子: g c d ( a , b ) = g c d ( b , c ) gcd(a,b) = gcd(b,c) gcd(a,b)=gcd(b,c)

这个证明过程告诉我们,不要忽视整数这个性质


2、当 b = 0 b = 0 b=0 的时候,这与 a = 0 a = 0 a=0 的计算过程等价,结论也等价,所以不过多赘述。

3、下面讨论 a ≠ 0 , b ≠ 0 a\neq0,b\neq0 a=0,b=0 的情况:

再次重申我们要证明的是什么?(有时候写着写着忘记要干嘛了)

证明: a x + b y = c ax + by = c ax+by=c 有整数解 ( x , y ) ⇔ g c d ( a , b ) ∣ c (x,y)\Leftrightarrow gcd(a,b)|c (x,y)gcd(a,b)c


充分性证明:

证明充分性,即证明: a x + b y = c ⇒ g c d ( a , b ) ∣ c ax+by=c \Rightarrow gcd(a,b)|c ax+by=cgcd(a,b)c

假设 a x + b y = c ax+by=c ax+by=c有解。

A = { a x + b y ; ( x , y ) ∈ Z 2 } A = \lbrace ax+by ; (x,y)\in \Z^2 \rbrace A={ax+by;(x,y)Z2}​ ​

不妨设 c 0 c_0 c0 A A A的最小正整数元素: a x 0 + b y 0 = c ax_0+by_0=c ax0+by0=c,其中 c c c表示A的任意一个正整数元素: a x + b y = c ax+by=c ax+by=c

c c c c 0 c_0 c0的带余除法: c = q c 0 + r c = qc_0 + r c=qc0+r 0 ≤ r < c 0 0 \leq r< c_0 0r<c0

代入原式: a x + b y = q ( a x 0 + b y 0 ) + r ax+by = q(ax_0+by_0) + r ax+by=q(ax0+by0)+r

r = a ( x − q x 0 ) + b ( y − q y 0 ) r = a(x-qx_0) + b(y - qy_0) r=a(xqx0)+b(yqy0) ,显然满足 r ∈ A r\in A rA

∵ \because 0 ≤ r < c 0 0\leq r< c_0 0r<c0 ,而 c 0 c_0 c0 A A A中的最小正元素。

∴ \therefore r r r 不是正元素, 即 r = 0 r=0 r=0,所以 c c c c 0 c_0 c0的带余除法为: c = q c 0 c=qc_0 c=qc0

也就是说 A A A中任意一个正元素 c c c,都存在 c 0 ∣ c c_0|c c0c

∵ a x + b y = c , ∀ c ∈ A , c 0 ∣ c \because ax+by=c , \forall c\in A ,c_0|c ax+by=ccA,c0c

∴ \therefore , c 0 ∣ a x c_0 |ax c0ax , c 0 ∣ b y c_0|by c0by

∵ x , y ∈ Z \because x,y\in\Z x,yZ

∴ c 0 ∣ a , c 0 ∣ b \therefore c_0|a,c_0|b c0a,c0b c c c a , b a,b a,b​​的公约数。

这是一个关键的进展!

接下来,我们只要证明 g c d ( a , b ) = c 0 gcd(a,b)=c_0 gcd(a,b)=c0

就能得到: g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c

d d d a , b a,b a,b的任意正公约数, a = k d , b = l d a=kd,b=ld a=kd,b=ld​。

a x + b y = k d x + l d y = ( k x + l y ) d = c 0 ax + by = kdx+ldy=(kx+ly)d=c_0 ax+by=kdx+ldy=(kx+ly)d=c0

∴ d ∣ c 0 \therefore d|c_0 dc0

∴ g c d ( a , b ) = c 0 \therefore gcd(a,b)=c_0 gcd(a,b)=c0

∴ ∀ a , b , c ∈ Z ,   a x + b y = c \therefore \forall a,b,c\in \Z , \:ax+by=c a,b,cZ,ax+by=c 有解 ⇒ g c d ( a , b ) ∣ c \Rightarrow gcd(a,b)|c gcd(a,b)c

充分性证毕

必要性证明:

证明当 g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c的时候, a x + b y = c ax+by=c ax+by=c 有解:

这个问题等价于证明:当 g c d ( a , b ) = c 0 gcd(a,b)=c_0 gcd(a,b)=c0时, a x + b y = c 0 ax+by=c_0 ax+by=c0有解:

d = g c d ( a , b ) d = gcd(a,b) d=gcd(a,b)

等式两边同时除以 d d d,等式就被转换为: a ′ x + b ′ y = 1 a'x+b'y=1 ax+by=1 其中 g c d ( a ′ , b ′ ) = 1 gcd(a',b')=1 gcd(a,b)=1

问题就转化为证明这个等式成立: a ′ x + b ′ y = 1 a'x+b'y=1 ax+by=1

这个求解的过程可以由欧几里得算法顺带求出。

a ′ = a , b ′ = b a'=a,b'=b a=a,b=b

模拟求 g c d ( a , b ) gcd(a,b) gcd(a,b)的过程:

a = k 1 b + r 1 a = k_1b+r_1 a=k1b+r1

⇒ a = b , b = r 1 \Rightarrow a=b,b=r_1 a=b,b=r1

b = k 2 r 1 + r 2 b=k_2r_1+r_2 b=k2r1+r2

r 1 = k 3 r 2 + r 3 r_1=k_3r_2+r_3 r1=k3r2+r3

. . . ... ...

r n − 1 = k n + 1 r n + r n + 1 . . . ( 3 ) r_{n-1}=k_{n+1}r_{n}+r_{n+1}...(3) rn1=kn+1rn+rn+1...(3)

r n = k n + 2 r n + 1 + r n + 2 . . . . ( 2 ) r_n=k_{n+2}r_{n+1}+r_{n+2}....(2) rn=kn+2rn+1+rn+2....(2)

r n + 1 = k n + 3 r n + 2 . . . ( 1 ) r_{n+1}=k_{n+3}r_{n+2}...(1) rn+1=kn+3rn+2...(1)​​

g c d = r n + 2 gcd = r_{n+2} gcd=rn+2

欧几里得算法在 r = 0 r=0 r=0​的时候停止,并返回 b b b,也就是 ( 1 ) (1) (1)式子

所以,可以得到 r n + 2 = 1 r_{n+2}=1 rn+2=1

r n = k n + 2 r n + 1 + 1... ( 2 ) r_{n}=k_{n+2}r_{n+1}+1...(2) rn=kn+2rn+1+1...(2)

联立 ( 2 ) , ( 3 ) (2),(3) (2),(3)消去 r n + 1 r_{n+1} rn+1

{ k n + 2 r n + 1 = 1 − r n k n + 2 r n + 1 = k n + 2 r n − 1 − k n + 1 k n + 2 r n \begin{cases} k_{n+2}r_{n+1}=1-r_n\\ k_{n+2}r_{n+1}=k_{n+2}r_{n-1}-k_{n+1}k_{n+2}r_n \end{cases} {kn+2rn+1=1rnkn+2rn+1=kn+2rn1kn+1kn+2rn

得:

( k n + 2 k n + 1 − 1 ) r n + 1 = k n + 2 r n − 1 . . . ( 1 ′ ) (k_{n+2}k_{n+1}-1)r_n+1=k_{n+2}r_{n-1}...(1') (kn+2kn+11)rn+1=kn+2rn1...(1)

联立 ( 1 ′ ) , ( 3 ) (1'),(3) (1),(3)消去 r n r_n rn

{ r n − 2 = k n r n − 1 + r n ( k n + 2 k n + 1 − 1 ) r n + 1 = k n + 2 r n − 1 \begin{cases} r_{n-2} = k_{n}r_{n-1}+r_n\\ (k_{n+2}k_{n+1}-1)r_n+1=k_{n+2}r_{n-1} \end{cases} {rn2=knrn1+rn(kn+2kn+11)rn+1=kn+2rn1
得:
( k n + 2 k n + 1 − 1 ) r n − 2 + 1 = ( k n + 2 k n + 1 k n − k n + k n + 2 ) r n − 1 . . . ( 2 ′ ) (k_{n+2}k_{n+1}-1)r_{n-2}+1=(k_{n+2}k_{n+1}k_{n}-k_n+k_{n+2})r_{n-1}...(2')\\ (kn+2kn+11)rn2+1=(kn+2kn+1knkn+kn+2)rn1...(2)
我们观察式子的结构不难发现:

这个式子只包含 r i , r i − 1 r_i,r_{i-1} ri,ri1这两个已知量,以及常数1,以及 r i , r i − 1 r_i,r_{i-1} ri,ri1前面的系数。

所以,我们可以通过不断的消去 r i r_i ri,使得最终的式子只包含 ( a , b , k ) (a,b,k) (a,b,k)

最终的形式一定可以化简: a x + b y = 1 ax+by=1 ax+by=1。​

必要性证毕。

战术总结:

本节内容的主要内容如下:

1、不定方程的简单介绍。

2、裴蜀定理介绍。

3、裴蜀定理的证明:

  • 先证明充分性:

    • 假定 a x + b y = c ax+by=c ax+by=c有解,证出 ∀ c ∈ A , c 0 ∣ c \forall c\in A,c_0|c cA,c0c,进而得出 c 0 ∣ a , c 0 ∣ b c_0|a,c_0|b c0a,c0b,即 c 0 c_0 c0 a , b a,b a,b的公约数
    • 接着证明 a , b a,b a,b的任意约数 d d d,都有 d ∣ c 0 d|c_0 dc0,得出 c 0 c_0 c0 a , b a,b a,b的最大公约数。
    • 此时证出:若 a x + b y = c 0 ax+by=c_0 ax+by=c0有解,则 c 0 = g c d ( a , b ) c_0=gcd(a,b) c0=gcd(a,b)
    • 在等式两边乘以任意整数可得:若 a x + b y = c ax+by=c ax+by=c有解,则 g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c
  • 再证明必要性:

    • 即证明当 c 0 = g c d ( a , b ) c_0=gcd(a,b) c0=gcd(a,b)的时候,是否 a x + b y = c 0 ax+by=c_0 ax+by=c0成立
    • 两边除以 c 0 c_0 c0,问题便转为证明:当 g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1 时, a ′ x + b ′ y = 1 a'x+b'y=1 ax+by=1成立。
    • 这个等式由欧几里得算法可以得出是有解的。