第六章:線性方程與最大公因數(2)

Lois發表於2020-08-30

現在,我們知道方程

ax+by=gcd(a,b)

總有整數解xy,那麼方程有多少個解,解該怎樣表述呢 ?
我們由互素ab開始,即讓gcd(a,b)=1,假設(x_1,y_1)是方程ax+by=1的一個解。透過x_1減去b的倍數和y_1加上a的相同倍數,可得到其他解。換句話說,對任何整數k,我們得到新解(x_1+kb,y_1-ka),透過計算

a(x_1+kb)+b(y_1-ka)=ax_1+akb+by_1-bka=ax_1+by_1=1

仍舊觀察gcd(a,b)=1情形,可證明這種方法給出所有解,假設(x_1,y_1)(x_2,y_2)是方程ax+by=1的兩個解,即

ax_1+by_1=1與ax_2+by_2=1

我們用y_1乘以第一個方程,用y_2乘以第二個方程,再相減就得到了b,整理後得到ax_1y_2-ax_2y_1=y_2-y_1
類似的,如果用x_2乘以第一個方程,用x_1乘以第二個方程,再相減便得到bx_2y_1-bx_1y_2=x_2-x_1
如果令k=x_2y_1-x_1y_2,則得到

x_2=x_1+kb\\ y_2=y_1-ka

所以,由初識解(x_1,y_1)透過去不同的k值可得到ax+by=1的每個解(x_1+kb,y_1-ka)
如果gcd(a,,b)>1情況會怎麼樣 ?
我們令g=gcd(a,b),由歐幾里得演算法知方程ax+by=g至少一個解(x_1,y_1),而g整除ab,故(x_1,y_1)是簡單方程

\frac{a}{g}x+\frac{b}{g}y=1

的解。透過將k的值代入

(x_1+k·\frac{b}{g},y_1-k \frac{a}{g})

###線性方程定理
ab是非零整數,g=gcd(a,b),方程ax+by=g總有一個整數解(x_1,y_1),它可由前面的歐幾里得演算法得到,則方程的每個解可由(x_1+k·\frac{b}{g},y_1-k \frac{a}{g})得到,其中k可為任意整數。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章