二元一次不定方程求解

不定方程:变量个数>方程个数
二元一次不定方程: a * x + b * y = c(又称为丢番图方程)

  • 定理:如果方程 ax+by=c (其中 a,b,c 都是整数)有整数解,那么必须满足 a,b 的最大公约数能够整除 c

求出 a,b 的最大公约数:

辗转相除法(也称欧几里得算法)
1.用较大的数除以较小的数,得到余数
2.然后用较小的数除以余数,再得到新的余数,依此类推,直到余数为零为止
3.最后一个非零的余数就是 a,b 的最大公约数

求出方程的通解

如果方程有整数解,那么一定存在一组整数 x0,y0 满足 a * x0 + b * y0 = c
由于a * x0 + b * y0=gcd( a , b ),所以:

  • x 一定是 x0 的(c / gcd( a , b ))倍,x = x0*(c / gcd( a , b )
  • y 一定是 y0 的(c / gcd( a , b ))倍,y = y0*(c / gcd( a , b )

该方程的通解为:(t为任意整数)
f ( x ) = { x = x 0 − b g c d ( a , b ) ∗ t y = y 0 + b g c d ( a , b ) ∗ t f(x)=\left\{ \begin{aligned} x & = x0 - \frac{b}{gcd( a , b )} * t\\ y & = y0 + \frac{b}{gcd( a , b )} * t \\ \end{aligned} \right. f(x)= xy=x0gcd(a,b)bt=y0+gcd(a,b)bt

证明一个二元一次方程有整数解:

  1. 用辗转相除法求出 a,b 的最大公约数 g,并判断是否能够整除 c。

  2. 如果 g 能够整除 c,则方程有整数解;否则没有。

  3. 如果方程有整数解,则用辗转相除法的逆过程求出一个特解 x0,y0。

  4. 根据通解公式求出所有的通解 x,y。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值