线性方程定理

设a与b是非零整数,g=gcd(a,b).方程ax+by=g总是有一个整数解(x1,y1)  (可利用扩展欧几里得算法解出),则方程的每一个解可由(x1+k*b/g,y1-k*a/g)得到,其中k可为任意整数。

证明:先证明ax+by=1的情况(此时设gcd(a,b)=1)。   (1)

若(x,y)是(1)式的解,则(x+kb,y-ka)也是(1)式的解,这个显而易见。

当然,若(x1,y1)和(x2,y2)都是(1)式的解,那么

ax1+by1=1  (2)

ax2+by2=1  (3)

通过x2乘(2)式减去x1乘(3)式,可得  by1*x2-by2*x1=x2-x1    (4)

通过y2乘(2)式减去y1乘(3)式,可得  ax1*y2-ax2*y1=y2-y1    (5)

不妨令k=x2*y1-x1*y2,代入(4)、(5)式

推出  x2=x1+kb,y2=y1-ak  

似乎这都是理所当然的做法

再讨论ax+by=gcd(a,b)时只需等式两边都除一下gcd(a,b)即可

 

posted @ 2015-04-22 22:01  mathloverxiaoli2014  阅读(148)  评论(0)    收藏  举报