线性同余方程组学习笔记

本文详细介绍了线性同余方程组的解法,包括扩展欧几里德算法,裴蜀定理及其应用。重点讨论了模数两两互质时的中国剩余定理,给出了具体的解题步骤和公式。此外,还探讨了模数不互质情况下的处理方法。
摘要由CSDN通过智能技术生成

版权声明:本文是蒟蒻写出来的,神犇转载也要说一声哦! https://blog.csdn.net/AH_ljq/article/details/82393563

1 扩展欧几里德算法

1.1 gcd ⁡ ( a , b ) = gcd ⁡ ( b , a % b ) \gcd (a, b) = \gcd(b, a \% b) gcd(a,b)=gcd(b,a%b)

a = k ⋅ b + r a = k \cdot b + r a=kb+r ,满足 a , b , k , r ≥ 0 , r &lt; b a, b, k, r \ge 0, r &lt; b a,b,k,r0r<b r = a − k ⋅ b r = a - k \cdot b r=akb

gcd ⁡ ( a , b ) = d \gcd (a,b) = d gcd(a,b)=d ,则有 ( k ⋅ b ) ∣ d , a ∣ d ⇒ r ∣ d ⇒ gcd ⁡ ( a , b ) = gcd ⁡ ( b , a % b ) (k \cdot b)| d , a | d \Rightarrow r|d \Rightarrow \gcd(a,b) = \gcd(b, a \%b) (kb)dadrdgcd(a,b)=gcd(b,a%b)

1.2 a x + b y = c ax + by = c ax+by=c 的整数解

1.2.1 裴蜀定理

裴蜀定理: 若 a , b a,b a,b 是整数,且 gcd ⁡ ( a , b ) = d \gcd(a,b)=d gcd(a,b)=d ,那么对于任意的整数 x , y x,y x,y a x + b y ax+by ax+by 都一定是 d d d 的倍数。特别地,一定存在整数 x , y x,y x,y ,使 a x + b y = d ax+by=d ax+by=d 成立。

c % gcd ⁡ ( a , b ) ≠ 0 c \% \gcd(a,b) \neq 0 c%gcd(a,b)̸=0 ,方程无解,否则方程有无穷多组解。

假设我们求得 x 0 , y 0 x0, y0 x0,y0 满足 a ⋅ x 0 + b ⋅ y 0 = gcd ⁡ ( a , b ) ⇒ a ⋅ c ⋅ x 0 gcd ⁡ ( a , b ) + b ⋅ c ⋅ y 0 gcd ⁡ ( a , b ) = c a \cdot x0 + b \cdot y0 = \gcd(a,b) \Rightarrow a \cdot \frac{c \cdot x0}{\gcd(a,b)} + b \cdot \frac{c \cdot y0}{\gcd(a,b)} = c ax0+by0=gcd(a,b)agcd(a,b)cx0+bgcd(a,b)cy0=c ,我们可以通过如下方法构造方程通解:
x = c ⋅ x 0 gcd ⁡ ( a , b ) + b gcd ⁡ ( a , b ) ⋅ k , y = c ⋅ y 0 gcd ⁡ ( a , b ) − a gcd ⁡ ( a , b ) ⋅ k , k ∈ Z x = \frac{c \cdot x0}{\gcd(a,b)} + \frac{b}{\gcd(a,b)} \cdot k, y = \frac{c \cdot y0}{\gcd(a,b)} - \frac{a}{\gcd(a,b)} \cdot k, k \in Z x=gcd(a,b)cx0+gcd(a,b)bk,y=gcd(a,b)cy0gcd(a,b)ak,kZ
接下来我们考虑如何求得满足上述条件的 x 0 , y 0 x0, y0 x0,y0

1.2.1 扩展欧几里德算法

a ⋅ x 0 + b ⋅ y 0 = gcd ⁡ ( a , b ) a \cdot x0 + b \cdot y0 = \gcd(a,b) ax0+by0=gcd(a,b)
b ⋅ x 0 ′ + ( a − ⌊ a b ⌋ ⋅ b ) ⋅ y 0 ′ = gcd ⁡ ( b , a % b ) b \cdot x0&#x27; + (a - \lfloor \frac{a}{b} \rfloor \cdot b) \cdot y0&#x27; = \gcd(b, a \% b) bx0+(abab)y0=gcd(b,a%b)
gcd ⁡ ( a , b ) = gcd ⁡ ( b , a % b ) \gcd(a,b) = \gcd(b, a\%b) gcd(a,b)=gcd(b,a%b)
⇒ b ⋅ x 0 ′ + a ⋅ y 0 ′ − ⌊ a b ⌋ ⋅ b ⋅ y 0 ′ = gcd ⁡ ( b , a % b ) \Rightarrow b \cdot x0&#x27; + a \cdot y0&#x27; - \lfloor \frac{a}{b} \rfloor \cdot b \cdot y0&#x27; = \gcd(b, a \% b) bx0+ay0baby0=gcd(b,a%b)
⇒ b ⋅ ( x 0 ′ − ⌊ a b ⌋ ⋅ y 0 ′ ) + a ⋅ y 0 ′ = gcd ⁡ ( b , a % b ) \Rightarrow b \cdot (x0&#x27; - \lfloor \frac{a}{b} \rfloor \cdot y0&#x27;) + a \cdot y0&#x27; = \gcd(b, a \% b) b(x0bay0)+ay0=gcd(b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值