线性方程定理

关注我的公众号c137Lab获取更多相关内容

在这里插入图片描述

线性方程定理

线性方程定理

​ 设 a a a b b b 是非零整数, g = g c d ( a , b ) g=gcd(a,b) g=gcd(a,b) 方程
a x + b y = g ax+by=g ax+by=g
总有一个整数解 ( x 1 , y 1 ) (x_1,y_1) (x1,y1),它可由欧几里得算法得到。则方程中的每一个解可由
( x 1 + k ⋅ b g , y 1 − k ⋅ a g ) (x_1+k\cdot \frac{b}{g},y_1-k\cdot \frac{a}{g}) (x1+kgb,y1kga)
得到,其中 k k k 为任意整数.

使用欧几里得算法求解 a x + b y = g c d ( a , b ) ax+by=gcd(a,b) ax+by=gcd(a,b) 的步骤如下

我们将欧几里得定理写成如下表形式(左边为欧几里得定理,右边为计算线性方程的解):

1

以此递推,陆续得到一个如下形式的等式:
最 新 余 数 = a 的 倍 数 + b 的 倍 数 最新余数=a的倍数+b的倍数 =a+b
最终得到的非零余数等于 g c d ( a , b ) gcd(a,b) gcd(a,b) ,这就给出了方程的整数解。

举例计算:
60 x + 22 y = g c d ( 60 , 22 ) 60x+22y=gcd(60,22) 60x+22y=gcd(60,22)
使用欧几里得定理:
在这里插入图片描述
( − 4 , 11 ) (-4,11) (4,11) 为方程的一个整数解。

接下来证明定理的第二部分:

证明:方程的 a x + b y = g ax+by=g ax+by=g 的通解可以由其中一个特解得出

将方程左右两端除以 g g g
a g x + b g y = 1 \frac{a}{g}x+\frac{b}{g}y=1 gax+gby=1
假设 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_1,y_1),(x_2,y_2) (x1,y1),(x2,y2) 是方程的两个解,则有
a g x 1 + b g y 1 = 1 , a g x 2 + b g y 2 = 1 \frac{a}{g}x_1+\frac{b}{g}y_1=1,\quad\frac{a}{g}x_2+\frac{b}{g}y_2=1 gax1+gby1=1,gax2+gby2=1
y 1 y_1 y1乘以第二个方程,用 y 2 y_2 y2乘以第一个方程,再做差就可以消去 b b b
a g x 1 y 2 − a g x 2 y 1 = y 2 − y 1 \frac{a}{g}x_1y_2-\frac{a}{g}x_2y_1=y_2-y_1 gax1y2gax2y1=y2y1
同理,用 x 1 x_1 x1 乘以第二个方程,用 x 2 x_2 x2乘以第一个方程可以消去 a a a
b g x 2 y 1 − b g x 1 y 2 = x 2 − x 1 \frac{b}{g}x_2y_1-\frac{b}{g}x_1y_2=x_2-x_1 gbx2y1gbx1y2=x2x1

k = x 2 y 1 − x 1 y 2 k=x_2y_1-x_1y_2 k=x2y1x1y2 得到:
x 2 = x 1 + k b g , y 2 = y 1 − k a g x_2=x_1+k\frac{b}{g},\quad y_2=y_1-k\frac{a}{g} x2=x1+kgb,y2=y1kga
上式表示 ( x 2 , y 2 ) (x_2,y_2) (x2,y2) 可由 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)得到

接下来使用代码实现这一算法:

def linear_equ(a, b):
    if a == 0 or b == 0:
        return -1
    else:
        g, w = a, b
        x, v = 1, 0

        while w != 0:
            t = g % w
            s = x - (g // w) * v
            x, g = v, w
            v, w = s, t

        y = (g - a * x) // b
        return g, x, y

参考文献:A Brief Introduction to Number Theory --Joseph H.Silverman

猜你喜欢

转载自blog.csdn.net/verse_monger/article/details/105441030