Acwing-基础算法课笔记之数学知识(中国剩余定理)

Acwing-基础算法课笔记之数学知识(中国剩余定理)

  • 一、中国剩余定理
    • 1、概述
      • 1、表述一
      • 2、表述二
    • 2、辗转相除法求逆元的回顾
    • 3、模拟过程
      • (1)例题一
      • (2)例题二
    • 4、闫氏思想
    • 5、求最小正整数解
  • 二、扩展知识

一、中国剩余定理

1、概述

{ x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) x ≡ a 3 ( m o d m 3 ) ⋮ x ≡ a n ( m o d m n ) \begin{cases} x \equiv a_1(modm_1) \\ x \equiv a_2(modm_2) \\ x \equiv a_3(modm_3) \\ \vdots \\ x \equiv a_n(modm_n) \end{cases} xa1(modm1)xa2(modm2)xa3(modm3)xan(modmn),其中 m 1 m_1 m1 m 2 m_2 m2 m 3 m_3 m3 ⋯ \cdots m n m_n mn 两两互质。

1、表述一

x = a 1 b 1 m 2 m 3 ⋯ m n + a 2 b 2 m 1 m 3 ⋯ m n + ⋯ + a n b n m 1 m 2 ⋯ m n − 1 x=a_1b_1m_2m_3\cdots m_n+a_2b_2m_1m_3\cdots m_n+\cdots +a_nb_nm_1m_2\cdots m_{n-1} x=a1b1m2m3mn+a2b2m1m3mn++anbnm1m2mn1,为方程的一个特解,其中 b i b_i bi满足 m 1 m 2 ⋯ m n m i \frac{m_1m_2\cdots m_n}{m_i} mim1m2mn b i ≡ 1 ( m o d b_i\equiv 1(mod bi1(mod m i ) m_i) mi) i = 1 , 2 , 3 , ⋯   , k i=1,2,3,\cdots,k i=1,2,3,,k

在上式中, { f 1 ≡ b 1 m 2 m 3 ⋯ m n f 2 ≡ b 2 m 1 m 3 ⋯ m n ⋮ f n ≡ b n m 1 m 2 ⋯ m n − 1 \begin{cases} f_1 \equiv b_1m_2m_3\cdots m_n \\ f_2 \equiv b_2m_1m_3\cdots m_n \\ \vdots \\ f_n \equiv b_nm_1m_2\cdots m_{n-1} \end{cases} f1b1m2m3mnf2b2m1m3mnfnbnm1m2mn1

2、表述二

{ x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) x ≡ a 3 ( m o d m 3 ) \begin{cases} x \equiv a_1(modm_1) \\ x \equiv a_2(modm_2) \\ x \equiv a_3(modm_3) \end{cases} xa1(modm1)xa2(modm2)xa3(modm3),其中 m 1 m_1 m1 m 2 m_2 m2 m 3 m_3 m3两两互质,找 x x x 的特解。

x = a 1 f 1 + a 2 f 2 + a 3 f 3 x=a_1f_1+a_2f_2+a_3f_3 x=a1f1+a2f2+a3f3,其中 f 1 f_1 f1 f 2 f_2 f2 f 3 f_3 f3分别满足 { f 1 ≡ 1 ( m o d m 1 ) f 1 ≡ 0 ( m o d m 2 ) ,即 m 2 ∣ f 1 ( 1 ) f 1 ≡ 0 ( m o d m 3 ) ,即 m 3 ∣ f 1 \begin{cases} f_1 \equiv 1(modm_1) \\ f_1 \equiv 0(modm_2),即m_2 |f_1 (1)\\ f_1 \equiv 0(modm_3),即m_3 |f_1 \end{cases} f11(modm1)f10(modm2),即m2f11f10(modm3),即m3f1 { m 1 ∣ f 2 f 2 ≡ 1 ( m o d m 2 ) ( 2 ) m 3 ∣ f 2 \begin{cases} m_1 |f_2 \\ f_2 \equiv 1(modm_2) (2)\\ m_3 |f_2 \end{cases} m1f2f21(modm2)2m3f2 { m 1 ∣ f 3 m 2 ∣ f 3 ( 3 ) f 3 ≡ 1 ( m o d m 3 ) \begin{cases} m_1 |f_3 \\ m_2 |f_3 (3)\\ f_3 \equiv 1(modm_3) \end{cases} m1f3m2f33f31(modm3)

验证方法:带回
∙ \bullet 带回(1)式 x ≡ a 1 ( m o d x\equiv a_1(mod xa1(mod m 1 ) m_1) m1),即 a 1 f 1 + a 2 f 2 + a 3 f 3 ≡ a 1 ( m o d a_1f_1+a_2f_2+a_3f_3\equiv a_1(mod a1f1+a2f2+a3f3a1(mod m 1 ) m_1) m1),由上式可知: a 1 f 1 ≡ a 1 ( m o d a_1f_1\equiv a_1(mod a1f1a1(mod m 1 ) m_1) m1),所以 f 1 ≡ 1 ( m o d m 1 ) f_1 \equiv 1(modm_1) f11(modm1)
(2),(3)式以此类推。

2、辗转相除法求逆元的回顾

M M − 1 ≡ 1 ( m o d MM^{-1}\equiv1(mod MM11(mod m ) m) m)
(1)当 M > m M>m M>m
462 x − 1 ≡ 1 ( m o d 462x^{-1}\equiv1(mod 462x11(mod 5 ) 5) 5)
⇒ 2 x − 1 ≡ 1 ( m o d \Rarr 2x^{-1}\equiv1(mod 2x11(mod 5 ) 5) 5)
⇒ 2 x − 1 − 5 y = 1 \Rarr 2x^{-1}-5y=1 2x15y=1
⇒ 2 × 3 − 5 × 1 = 1 \Rarr 2\times3-5\times1=1 2×35×1=1
⇒ x − 1 = 3 ( m o d \Rarr x^{-1}=3(mod x1=3(mod 5 ) 5) 5)
(2)当 M < m MM<m
15 x − 1 ≡ 1 ( m o d 15x^{-1}\equiv1(mod 15x11(mod 28 ) 28) 28)
⇒ 28 = 15 × 1 + 13 \Rarr 28=15\times1+13 28=15×1+13
⇒ 15 = 13 × 1 + 2 \Rarr15=13\times1+2 15=13×1+2
⇒ 13 = 2 × 6 + 1 \Rarr13=2\times6+1 13=2×6+1
反推:
1 = 13 − ( 15 − 13 × 1 ) × 6 1=13-(15-13\times1)\times6 1=13(1513×1)×6
⇒ 1 = 13 × 7 − 15 × 6 \Rarr 1=13\times7-15\times6 1=13×715×6
⇒ 1 = 13 × 7 − 15 × 6 \Rarr 1=13\times7-15\times6 1=13×715×6
⇒ 1 = 15 × ( − 13 ) − 28 × ( − 7 ) \Rarr 1=15\times(-13)-28\times(-7) 1=15×(13)28×(7)
⇒ x − 1 ≡ − 13 = 15 ( m o d \Rarr x^{-1}\equiv-13=15(mod x113=15(mod 28 ) 28) 28)

3、模拟过程

(1)例题一

{ x ≡ 2 ( m o d 3 ) x ≡ 3 ( m o d 5 ) x ≡ 2 ( m o d 7 ) \begin{cases} x \equiv 2(mod3) \\ x \equiv 3(mod5) \\ x \equiv 2(mod7) \end{cases} x2(mod3)x3(mod5)x2(mod7)
根据上式求 x x x 的值:
x = M 1 M 1 − 1 b 1 + ⋯ + M i M i − 1 b i ( m o d x=M_1M_1^{-1}b_1+\cdots+M_iM_i^{-1}b_i(mod x=M1M11b1++MiMi1bi(mod M ) M) M)

可求:
∙ \bullet M 1 = 5 × 7 = 35 M_1=5\times7=35 M1=5×7=35
35 × M 1 − 1 ≡ 1 ( m o d 35\times M_1^{-1}\equiv1(mod 35×M111(mod 3 ) 3) 3)
⇔ M 1 − 1 ≡ 2 ( m o d \Harr M_1^{-1}\equiv2(mod M112(mod 3 ) 3) 3)

∙ \bullet M 2 = 3 × 7 = 21 M_2=3\times7=21 M2=3×7=21
M 2 − 1 ≡ 1 ( m o d M_2^{-1}\equiv1(mod M211(mod 5 ) 5) 5)

∙ \bullet M 3 = 3 × 5 = 15 M_3=3\times5=15 M3=3×5=15
M 3 − 1 ≡ 1 ( m o d M_3^{-1}\equiv1(mod M311(mod 7 ) 7) 7)
所以, M = 3 × 5 × 7 = 105 M=3\times5\times7=105 M=3×5×7=105

x = 2 × 35 × 2 + 3 × 21 × 1 + 2 × 15 × 1 ( m o d x=2\times35\times2+3\times21\times1+2\times15\times1(mod x=2×35×2+3×21×1+2×15×1(mod 105 ) 105) 105)
≡ 233 ( m o d \equiv233(mod 233(mod 105 ) 105) 105)
≡ 23 ( m o d \equiv23(mod 23(mod 105 ) 105) 105)

(2)例题二

{ x ≡ 2 ( m o d 3 ) x ≡ 3 ( m o d 4 ) x ≡ 5 ( m o d 7 ) \begin{cases} x \equiv 2(mod3) \\ x \equiv 3(mod4) \\ x \equiv 5(mod7) \end{cases} x2(mod3)x3(mod4)x5(mod7)

根据上式求 x x x 的值:
x = M 1 M 1 − 1 b 1 + ⋯ + M i M i − 1 b i ( m o d x=M_1M_1^{-1}b_1+\cdots+M_iM_i^{-1}b_i(mod x=M1M11b1++MiMi1bi(mod M ) M) M)

可求:
∙ \bullet M 1 = 4 × 7 = 28 M_1=4\times7=28 M1=4×7=28
28 × M 1 − 1 ≡ 1 ( m o d 28\times M_1^{-1}\equiv1(mod 28×M111(mod 3 ) 3) 3)
⇔ M 1 − 1 ≡ 1 ( m o d \Harr M_1^{-1}\equiv1(mod M111(mod 3 ) 3) 3)

∙ \bullet M 2 = 3 × 7 = 21 M_2=3\times7=21 M2=3×7=21
21 × M 2 − 1 ≡ 1 ( m o d 21\times M_2^{-1}\equiv1(mod 21×M211(mod 4 ) 4) 4)
⇔ M 1 − 1 ≡ 1 ( m o d \Harr M_1^{-1}\equiv1(mod M111(mod 4 ) 4) 4)

∙ \bullet M 3 = 3 × 4 = 12 M_3=3\times4=12 M3=3×4=12
12 × M 2 − 1 ≡ 1 ( m o d 12\times M_2^{-1}\equiv1(mod 12×M211(mod 7 ) 7) 7)
⇔ 5 × M 2 − 1 ≡ 1 ( m o d \Harr 5\times M_2^{-1}\equiv1(mod 5×M211(mod 7 ) 7) 7)
⇔ 5 × M 2 − 1 − 7 × y = 1 \Harr 5\times M_2^{-1}-7\times y=1 5×M217×y=1
⇔ 5 × 2 − 7 × 1 = 3 \Harr 5\times2-7\times1=3 5×27×1=3
⇔ 7 − 3 × 2 = 1 \Harr 7-3\times2=1 73×2=1
⇔ 5 × ( − 4 ) − 7 × ( − 3 ) = 1 \Harr 5\times(-4)-7\times(-3)=1 5×(4)7×(3)=1
⇔ M 3 − 1 = − 4 \Harr M_3^{-1}=-4 M31=4
⇔ M 3 − 1 % 7 = 3 \Harr M_3^{-1}\%7=3 M31%7=3
⇔ M 3 − 1 = 3 ( m o d \Harr M_3^{-1}=3(mod M31=3(mod 7 ) 7) 7)

所以, M = 3 × 4 × 7 = 84 M=3\times4\times7=84 M=3×4×7=84
x ≡ 2 × 28 × 1 + 3 × 21 × 1 + 5 × 12 × 3 ( m o d x\equiv2\times28\times1+3\times21\times1+5\times12\times3(mod x2×28×1+3×21×1+5×12×3(mod 84 ) 84) 84)
≡ 299 ( m o d \equiv299(mod 299(mod 84 ) 84) 84)
≡ 47 ( m o d \equiv47(mod 47(mod 84 ) 84) 84)

4、闫氏思想

{ x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) x ≡ a 3 ( m o d m 3 ) ⋮ x ≡ a n ( m o d m n ) \begin{cases} x \equiv a_1(modm_1) \\ x \equiv a_2(modm_2) \\ x \equiv a_3(modm_3) \\ \vdots \\ x \equiv a_n(modm_n) \end{cases} xa1(modm1)xa2(modm2)xa3(modm3)xan(modmn),其中 m 1 m_1 m1 m 2 m_2 m2 m 3 m_3 m3 ⋯ \cdots m n m_n mn 两两互质。

{ x = k 1 ⋅ a 1 + m 1 x = k 2 ⋅ a 2 + m 2 \begin{cases} x = k_1\sdot a_1+m_1 \\ x = k_2\sdot a_2+m_2 \\ \end{cases} {x=k1a1+m1x=k2a2+m2
⇒ k 1 ⋅ a 1 + m 1 = k 2 ⋅ a 2 + m 2 \Rarr k_1\sdot a_1+m_1 = k_2\sdot a_2+m_2 k1a1+m1=k2a2+m2
⇒ k 1 ⋅ a 1 − k 2 ⋅ a 2 = m 2 − m 1 \Rarr k_1\sdot a_1-k_2\sdot a_2 = m_2-m_1 k1a1k2a2=m2m1

若有解等价于 g c d ( a 1 , a 2 ) ∣ ( m 2 − m 1 ) gcd(a_1,a_2)|(m_2-m_1) gcd(a1,a2)(m2m1)
{ k 1 = k 1 + k ⋅ a 2 d k 2 = k 2 + k ⋅ a 1 d \begin{cases} k_1=k_1+k\sdot \frac{a_2}{d} \\ k_2=k_2+k\sdot \frac{a_1}{d} \\ \end{cases} {k1=k1+kda2k2=k2+kda1
x = k 1 ⋅ a 1 + m 1 x=k_1\sdot a_1+m_1 x=k1a1+m1
⇒ x = ( k 1 + k ⋅ a 2 d ) ⋅ a 1 + m 1 \Rarr x=(k_1+k\sdot \frac{a_2}{d})\sdot a_1+m_1 x=(k1+kda2)a1+m1
⇒ x = a 1 k 1 + m 1 + k a 1 a 2 d \Rarr x=a_1k_1+m_1+k\frac{a_1a_2}{d} x=a1k1+m1+kda1a2
⇒ x = a 1 k 1 + m 1 + k ⋅ l c m [ a 1 , a 2 ] \Rarr x=a_1k_1+m_1+k\sdot lcm[a_1,a_2] x=a1k1+m1+klcm[a1,a2]
⇒ x = x 0 + k a \Rarr x=x_0+ka x=x0+ka(和 x = k 1 ⋅ a 1 + m 1 x = k_1\sdot a_1+m_1 x=k1a1+m1类似)
所以可以把两个式子合并成一个 x = x 0 + k a x=x_0+ka x=x0+ka,即 x x x m o d mod mod a ≡ x 0 a\equiv x_0 ax0

5、求最小正整数解

k = ( k % t + t ) % t k=(k\%t+t)\%t k=(k%t+t)%t
例如: ( − 5 % 3 + 3 ) % 3 = 1 (-5\%3+3)\%3=1 (5%3+3)%3=1
− 5 -5 5 除以 3 3 3 的余数是 1 1 1,所以 − 5 -5 5 除以 3 3 3 等于 − 1 -1 1 1 1 1

二、扩展知识

在数学中,“ a ∣ b a|b ab” 表示 “ a a a” 能够整除 “ b b b”,也就是说,“ b b b” 能够被 “ a a a” 整除而不产生余数。这通常用来描述整数之间的关系。例如,如果我们说 “ 3 ∣ 12 3|12 3∣12”,意思是 3 3 3 能够整除 12 12 12,因为 12 12 12 除以 3 3 3 得到的商是一个整数。

你可能感兴趣的:(Acwing基础算法课笔记,算法,笔记,线性代数)