线性同余定理(数论日常2)

线性同余定理

简单来说就是解决同余式。 a x ≡ c   m o d   m ax\equiv c\ mod\ m axc mod m

a a a , c c c m m m 都是整数, m ≥ 1 m \geq 1 m1 ,且设 g = g c d ( a , m ) g = gcd(a,m) g=gcd(a,m)

(1) 若 g g g 不整除 c c c,则同余式 a x ≡ c   ( m o d   m ) ax\equiv c\ (mod\ m) axc (mod m)没有解。
(2) 若 g ∣ c g | c gc,则同余式 a x ≡ c   m o d   m ax\equiv c\ mod\ m axc mod m恰好有 g g g个不同的解。

首先根据欧几里得算法可以求出线性方程 a u + m v = g au+mv=g au+mv=g的一个解 ( u , v ) (u,v) (u,v)。则 x 0 = c u g x_0=\frac{cu}{g} x0=gcu a x ≡ c   m o d   m ax\equiv c\ mod\ m axc mod m的一个特殊解,其余解为 x ≡ x 0 + k ∗ m g ( m o d   m ) , k = 0 , 1 , . . . , g − 1 x \equiv x_0+k*\frac{m}{g}(mod \ m),k = 0,1,...,g-1 xx0+kgm(mod m),k=0,1,...,g1

举例

1. 943 x ≡ 381 ( m o d   2576 ) 943x\equiv 381 (mod\ 2576) 943x381(mod 2576)

因为 g c d ( 943 , 2576 ) = 23 gcd(943,2576)=23 gcd(943,2576)=23不整除 381 381 381,所以该同余式无解。

2. 893 x ≡ 266 ( m o d   2432 ) 893x\equiv 266 (mod\ 2432) 893x266(mod 2432)
因为 g c d ( 893 , 2432 ) = 19 gcd(893,2432)=19 gcd(893,2432)=19整除 266 266 266,所以该同余式的解有19个。
首先,我们解方程 893 u + 2432 v = 19 893u+2432v=19 893u+2432v=19
得到 ( u , v ) = ( 79 , 29 ) (u,v)=(79,29) (u,v)=(79,29)

则特殊解为 x 0 = c u g = 1106 x_0=\frac{cu}{g}=1106 x0=gcu=1106

其余解 x ≡ x 0 + k ∗ m g ( m o d   m ) x\equiv x_0+k*\frac{m}{g}(mod \ m) xx0+kgm(mod m),即

( 1234 , 1362 , 1490 , 1618 , 1746 , 1874 , 2002 , 2130 , 2258 , (1234,1362,1490,1618,1746,1874,2002,2130,2258, (1234,1362,1490,1618,1746,1874,2002,2130,2258,

2386 , 82 , 210 , 338 , 466 , 594 , 722 , 850 , 978 ) 2386,82,210,338,466,594,722,850,978) 2386,82,210,338,466,594,722,850,978)

推导过程

由同余式 a x ≡ c   m o d   m ax\equiv c\ mod\ m axc mod m可推出: a x − m y = c ax-my=c axmy=c
我们的任务就是求出这个线性方程。

首先,设 g = g c d ( a , m ) g = gcd(a,m) g=gcd(a,m),则根据裴蜀定理可知:
a u − m v = g au-mv=g aumv=g因此如果 g g g不整除 c c c,则该方程无解。

下面假设 g ∣ c g|c gc,则我们可以利用欧几里得算法求解 ( u 0 , v 0 ) (u_0,v_0) (u0,v0)
由于 g ∣ c g|c gc,则可以用 c g \frac{c}{g} gc同乘式子两边,得到:
a c u 0 g + m c v 0 g = c a\frac{cu_0}{g}+m\frac{cv_0}{g}=c agcu0+mgcv0=c

所以我们可以得到一个特殊解: x 0 = c u 0 g ( m o d   m ) x_0=\frac{cu_0}{g}(mod\ m) x0=gcu0(mod m)

设还有其余解 x 1 x_1 x1,则我们有 a x 1 ≡ a x 0 ( m o d   m ) ax_1\equiv ax_0 (mod\ m) ax1ax0(mod m)
即: a ( x 1 − x 0 ) = k m a (x_1-x_0)=km a(x1x0)=km
同除 g g g,得:
a g ( x 1 − x 0 ) = k m g \frac{a}{g} (x_1-x_0)=k\frac{m}{g} ga(x1x0)=kgm
因为 g c d ( a g , m g ) = 1 gcd(\frac{a}{g},\frac{m}{g})=1 gcd(ga,gm)=1,所以 m g ∣ ( x 1 − x 0 ) \frac{m}{g}|(x_1-x_0) gm(x1x0)

所以 x 1 = x 0 + k m g x_1=x_0+k\frac{m}{g} x1=x0+kgm,由于当 k = g k=g k=g时两个解是相等的,所以 k = 0 , 1 , . . . g − 1 k=0,1,...g-1 k=0,1,...g1

参考书目:《A Friendly Introduction to Number Theory》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值