求解线性模方程

本文详细介绍了如何求解线性模方程ax+ny=b,包括求解步骤和相关定理证明,强调了解的存在性和唯一性的条件。通过扩展欧几里得算法和逆元方法来找到方程的解,并讨论了最小解和最大解的计算方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求解线性模方程的一般步骤:ax+ny=b;

1.求d=gcd(a,n),如果b%n!=0,则不存在解

2.用扩展欧几里德求ax+ny=d的一个解x0,则方程ax+ny=b的一个解是x=x0*b/d(该方程共有d个不同的解,分别为xi=x0+i*(n/d),其中i=0,1,2,...,d-1)

注:这里求出一个解其实也可以用求逆元的方法,方程两边同时除以d,得到a'x+n'y=b',这时候x0=b'*(a'模n下的逆元)

3.特别的,最小解是x1=(x0%(n/d)+n/d)%(n/d),最大解是x2=x1+(d-1)*(n/d);

 

其中用到了几个定理:

定理一:若gcd(a, b) = 1,则方程ax ≡ c (mod b)在[0, b-1]上有唯一解。

证明:由定理一知,总可以找到或正或负的整数k和l使a*k + b*l = gcd(a, b) = 1,即我们可以求出ax ≡ 1 (mod b)的解x0。当然,两边乘以c有a(cx0) ≡ c (mod b),所以有x = cx0就是ax ≡ c (mod b)的解。由于加上或减去若干倍b都是该方程的解,所以x在[0, b-1]上有解。那么怎样确定它的唯一性呢?我花了一个小时终于证明出来了,证明方法就是,假设x1和x2都是[0, b-1]上的解,那么就有ax1 ≡ c (mod b),ax2 ≡ c (mod b),两式相减就有a(x1-x2) ≡ 0 (mod b),即a(x1-x2)可以被b整除。但gcd(a, b) = 1啊!所以a和b之间没有共同的语言可以交流,所以只能说(x1-x2)被b整除了。但x1和x2都在[0, b-1]上,所以x1-x2也在[0, b-1]上,所以只能说x1-x2=0了,因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值