数论:不定方程
数论:不定方程
最普通的不定方程是这样的:
对于不定方程的整数解,有一个结论:只要c能被gcd(a,b)整除,那么方程有整数解.
为了表示清楚,设gcd(a,b)=q,a=qn,b=qm,c=qo.
这时设a,b,c符合条件,那么n,m,o都是整数,且n,m互质.
对于m,n,一定可以有两个整数u,v,符合nu+mv=1.
也就是说,对于某一个u,符合nu%m=1,此时nu/m=v.并且在1<=u<m时,u唯一.
这时a+b=nq+mq=q(n+m).
只要x=u,y=v,那么方程左边就是nqu+mqv=q(nu+mv)=q.
只要将x和y同时乘c/q,那么方程左边就等于q(c/q)=c.
此时方程有整数特解x=uc/q,y=vc/q.当然,这里的u,v,q是我们自己定义的变量.
q=gcd(a,b),u=(a/q)的逆元(%n),v=(b/q)的逆元(%m).
这时就可以写出完整公式:
只要有一组特解,就能求出所有解.
因为x每次增加m,那么xa就增加ma,又因为ma=mnq=[a,b],所以x增加m,ax就增加[a,b]
所以对x来说,每个m是一循环,因为每个增加[a,b]都可以被b整除,所以当特解x增加m时,y只要减少n就能使by减少x,使等式仍然成立.
m=b/gcd(a,b)
n=a/gcd(a,b)
所以就有了通过特解求所有整数解的公式:(t为任意整数)
这便是解二元一次不定方程的方法了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)