exgcd
求解形如
ax+by=k∗gcd(a,b)
我们先来解决一个简单一些的问题
ax+by=1 (a⊥b)
根据exgcd,我们能求出来一组特解x0,y0,接下来,我们尝试构造其通解
设 a(x0+Δx)+b(y0+Δy)=1
与ax0+by0=1 (a⊥b) 相减,得
aΔx+bΔy=0
Δx=−bΔya
由于Δx是整数,所以 a∣bΔy,又因为a⊥b所以a∣Δy
同理可得b∣Δx
设Δx=kb
则有Δy=−aΔxb=−akbb=ka
因此,通解为
x=x0+kb
y=y0−ka
这意味着:
1.已经在构造中证明,该形式是方程的一个解
2.因为我们是对全体Δx,Δy推导方程的解一定满足该形式
我们均已经在上文证明
接下来,我们希望求解
ax+by=k∗(a,b)
在方程两边同时除以k∗(a,b)
a′=ak(a,b),b′=bk(a,b)
转化为
a′x+b′y=1
通解为
x=x0+kb′=x0+kb(a,b)
y=y0−ka′=y0−kb(a,b)
exCRT
我们合并方程组
{x≡r1modm1x≡r2modm2
有
x=m1k1+r1=m2k2+r2
整理
m1k1−m2k2=r2−r1
令c=r2−r1
方程两边同时除以c
p1k1−p2k2=1
有解仅当
通解为
k1=k′1+lp2
k2=k′2−lp1
回代,得
x=m1k′1+lm1p2
x=m1k′1+l[m1,m2]
x≡m1k′1(modlcm(m1,m2))
每一步都不失唯一性和成立性
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!