求拓展欧几里得最小整数解(全网最通俗)

前言

此博客是求满足 a x + b y = c ax+by=c ax+by=c x x x最小整数解。为什么是最通俗的呢?因为我做这个的时候看网上的题解都看不懂。。。

正文

不妨设存在两个方程使得 a x 1 + b y 1 = c ax_1 + by_1 = c ax1+by1=c a ( x 1 − n ) + b y 2 = c a(x_1-n)+by_2=c a(x1n)+by2=c
y 1 = ( c − a x 1 ) / b y_1 = (c - ax_1)/b y1=(cax1)/b y 2 = ( c − a x 1 + a n ) / b y_2 = (c - ax_1 + an)/b y2=(cax1+an)/b
因为 y 1 , y 2 ∈ Z y_1,y_2\in Z y1,y2Z,所以 b ∣ a n b|an ban,所以 b / g c d ( a , b ) ∣ n b / gcd(a, b)|n b/gcd(a,b)n
t = b / g c d ( a , b ) t=b/gcd(a,b) t=b/gcd(a,b)
x 1 > 0 x_1>0 x1>0,易知将 x 1 % t x_1 \% t x1%t 就是最优解了。
x 1 < 0 x_1<0 x1<0,则将 ( x 1 % t + t ) % t (x_1 \% t + t) \% t (x1%t+t)%t,可得最优解。

结语

我认为我已经写的很通俗了,如果你还不懂,不妨自己推一推,毕竟每个人的思维都不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值