【扩展欧几里得算法】(一)解同余方程 学习笔记

本文详细介绍了扩展欧几里得算法的应用场景及其求解线性同余方程的方法。通过实例展示了如何求解最小正整数解及在特定范围内求解。包括算法原理、代码实现及多个具体应用案例。

【扩展欧几里得算法】(一)解同余方程 学习笔记

用来干嘛的?

给定正整数a,b,最大公约数d。我们想要求解 a x + b y = d ax+by=d ax+by=d的x,y,扩展欧几里得算法可以解决这一问题

如何实现

扩展欧几里得基于欧几里得算法,回忆一下欧几里得算法求GCD的。
( a , b ) = ( b , a m o d    b ) (a,b)=(b,a\mod b) (a,b)=(b,amodb)
可以缩小问题规模,把求 ( a , b ) (a,b) (a,b)最大公约数转化为求 ( b , a m o d    b ) (b,a\mod b) (b,amodb)的最大公约数
相似的
我们可以先求解出
( b , a m o d    b ) = d … … ① (b,a\mod b)=d……① (b,amodb)=d
b x + ( a m o d    b ) y = d … … ② bx+(a\mod b)y=d……② bx+(amodb)y=d
然后我们可以利用②式求解出原问题
a x ′ + b y ′ = d … … ③ ax^{'}+by^{'}=d……③ ax+by=d
x b + y ( a m o d    b ) = d x b + y ( a − ⌊ a b ⌋ b ) = d a y + b x − ⌊ a b ⌋ b y = d a y + b ( x − ⌊ a b ⌋ y ) = d x ′ = y , y ′ = x − ⌊ a b ⌋ y xb+y(a\mod b)=d\\ xb+y(a-\lfloor\frac a b\rfloor b)=d \\{}\\ ay+bx-\lfloor \frac a b\rfloor by=d \\{} \\ ay+b(x-\lfloor \frac a b\rfloor y)=d\\{}\\ x^{'}= y , y^{'}=x-\lfloor \frac a b\rfloor y\\ xb+y(amodb)=dxb+y(abab=day+bxbaby=day+b(xbay)=dx=y,y=xbay
exgcd得到了 a x 0 + b y 0 = d ax_0+by_0=d ax0+by0=d的特解,然后得到原线性同余方程的一个特解 c d x 0 \frac c d x_0 dcx0
线性同余方程的通解的形式
x = c d x 0 + k b d y = c d y 0 − k a d x=\frac cdx_0+k\frac b d\\ {}\\ y=\frac c dy_0-k\frac a d\\ x=dcx0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值