线性同余方程和中国剩余定理学习笔记

线性同余方程介绍

形如 a x ≡ c ( m o d b ) ax \equiv c \pmod b axc(modb) 的方程被称为 线性同余方程(Congruence Equation)。

求解方法

根据以下两个定理,我们可以求出同余方程 a x ≡ c ( m o d b ) ax \equiv c \pmod b axc(modb) 的解。

定理 1:方程 a x + b y = c ax+by=c ax+by=c 与方程 a x ≡ c ( m o d b ) ax \equiv c \pmod b axc(modb) 是等价的,有整数解的充要条件为 gcd ⁡ ( a , b ) ∣ c \gcd(a,b) \mid c gcd(a,b)c

根据定理 1,方程 a x + b y = c ax+by=c ax+by=c,我们可以先用扩展欧几里得算法求出一组 x 0 , y 0 x_0,y_0 x0,y0,也就是 a x 0 + b y 0 = gcd ⁡ ( a , b ) ax_0+by_0=\gcd(a,b) ax0+by0=gcd(a,b),然后两边同时除以 gcd ⁡ ( a , b ) \gcd(a,b) gcd(a,b),再乘 c c c。然后就得到了方程 a c gcd ⁡ ( a , b ) x 0 + b c gcd ⁡ ( a , b ) y 0 = c a\dfrac{c}{\gcd(a,b)}x_0+b\dfrac{c}{\gcd(a,b)}y_0=c agcd(a,b)cx0+bgcd(a,b)cy0=c,然后我们就找到了方程的一个解。

定理 2:若 gcd ⁡ ( a , b ) = 1 \gcd(a,b)=1 gcd(a,b)=1,且 x 0 x_0 x0 y 0 y_0 y0 为方程 a x + b y = c ax+by=c ax+by=c 的一组解,则该方程的任意解可表示为: x = x 0 + b t x=x_0+bt x=x0+bt y = y 0 − a t y=y_0-at y=y0at, 且对任意整数 t t t 都成立。

根据定理 2,可以求出方程的所有解。但在实际问题中,我们往往被要求求出一个最小整数解,也就是一个特解 x = ( x   m o d   t + t )   m o d   t x=(x \bmod t+t) \bmod t x=(xmodt+t)modt,其中 t = b gcd ⁡ ( a , b ) t=\dfrac{b}{\gcd(a,b)} t=gcd(a,b)b

中国剩余定理介绍

「物不知数」问题

有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?

即求满足以下条件的整数:除以 3 3 3 2 2 2,除以 5 5 5 3 3 3,除以 7 7 7 2 2 2

该问题最早见于《孙子算经》中,并有该问题的具体解法。宋朝数学家秦九韶于 1247 年《数书九章》卷一、二《大衍类》对「物不知数」问题做出了完整系统的解答。上面具体问题的解答口诀由明朝数学家程大位在《算法统宗》中给出:

三人同行七十希,五树梅花廿一支,七子团圆正半月,除百零五便得知。

2 × 70 + 3 × 21 + 2 × 15 = 233 = 2 × 105 + 23 2\times 70+3\times 21+2\times 15=233=2\times 105+23 2×70+3×21+2×15=233=2×105+23,故答案为 23 23 23

算法简介及过程

中国剩余定理 (Chinese Remainder Theorem, CRT) 可求解如下形式的一元线性同余方程组(其中 p 1 , p 2 , ⋯   , p n p_1, p_2, \cdots, p_n p1,p2,,pn 两两互质):

{ x ≡ a 1 ( m o d p 1 ) x ≡ a 2 ( m o d p 2 ) ⋮ x ≡ a k ( m o d p k ) \begin{cases} x &\equiv a_1 \pmod {p_1} \\ x &\equiv a_2 \pmod {p_2} \\ &\vdots \\ x &\equiv a_k \pmod {p_k} \\ \end{cases} xxxa1(modp1)a2(modp2)a

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值