中国剩余定理 CRT

中国剩余定理 CRT

给定 n n n 个一次同余式, 求 X X X
S = { X ≡ b 1   m o d   m 1 X ≡ b 2   m o d   m 2 ⋯ ⋯ ⋯ ⋯ X ≡ b n   m o d   m n S=\left\{\begin{array}{l} X \equiv b_{1} \bmod m_{1} \\ X \equiv b_{2} \bmod {m}_{2} \\ \cdots \cdots \\ \cdots \cdots \\ X \equiv b_{n} \bmod m_{n} \end{array}\right. S= Xb1modm1Xb2modm2⋯⋯⋯⋯Xbnmodmn

其中 m i m_{i} mi 是两两互素的, 即对 1 ⩽ i , j ⩽ k , i ≠ j 1 \leqslant i, j \leqslant k, i \neq j 1i,jk,i=j gcd ⁡ ( m i , m j ) = 1 \operatorname{gcd}\left(m_{i}, m_{j}\right)=1 gcd(mi,mj)=1

对于这样形式的一次同余式, 则对任意的整数: a 1 , a 2 , . . . , a n a_1, a_2, ... , a_n a1,a2,...,an,方程组 S {\displaystyle S} S 有解,并且通解可以用如下方式构造得到

S S S 写成
{ k 1 k 1 − 1 ≡ b 1   m o d   m 1 k 2 k 2 − 1 ≡ b 2   m o d   m 2 ⋯ ⋯ ⋯ ⋯ k n k n − 1 ≡ b n   m o d   m n \left\{\begin{array}{l} k_1 k_{1}^{-1} \equiv b_{1} \bmod m_{1} \\ k_2k_{2}^{-1} \equiv b_{2} \bmod {m}_{2} \\ \cdots \cdots \\ \cdots \cdots \\ k_nk_{n}^{-1} \equiv b_{n} \bmod m_{n} \end{array}\right. k1k11b1modm1k2k21b2modm2⋯⋯⋯⋯knkn1bnmodmn
则方程的通解可以表示为
X ≡ k 1 k 1 − 1 b 1 + k 2 k 2 − 1 b 2 + … … + k n k n − 1 b n   m o d   m \begin{aligned} X \equiv & k_{1} k_{1}^{-1} b_{1}+k_{2} k_{2}^{-1} b_{2}+\ldots \ldots+k_{n} k_{n}{ }^{-1} b_{n} \bmod m \end{aligned} Xk1k11b1+k2k21b2+……+knkn1bnmodm

其中:
m = m 1 m 2 … . . m k , k i = m m i , k i k i − 1 ≡ 1   m o d   m i \begin{aligned} &m_{}=m_{1} m_{2} \ldots . . m_{k}, \\ &k_{i}=\frac{m}{m_{i}} , \\ &k_{i} k_{i}^{-1} \equiv 1 \bmod m_{i} \end{aligned} m=m1m2..mk,ki=mim,kiki11modmi

应用举例

求解一次同余式

S = { X ≡ 2   m o d   3 X ≡ 3   m o d   5 X ≡ 2   m o d   7 S=\left\{\begin{array}{l} X \equiv 2 \bmod 3 \\ X \equiv 3 \bmod 5 \\ X \equiv 2 \bmod 7 \end{array}\right. S= X2mod3X3mod5X2mod7

经验证, 3 , 5 , 7 3,5,7 3,5,7 这三个模数两两互质, 故可以用中国剩余定理构造出通解

把由上述通解公式, 把 S S S 写成
{ 35 k 1 − 1 ≡ 2   m o d   3 21 k 2 − 1 ≡ 3   m o d   5 15 k 3 − 1 ≡ 2   m o d   7 \left\{\begin{array}{l} 35k_1^{-1} \equiv 2 \bmod 3 \\ 21k_2^{-1} \equiv 3 \bmod 5 \\ 15k_3^{-1} \equiv 2 \bmod 7 \end{array}\right. 35k112mod321k213mod515k312mod7
由乘法逆元的性质: k k − 1 ≡ a   m o d   b ⇒ k k − 1 ≡ 1   m o d   b kk^{-1}\equiv a \bmod b \Rightarrow kk^{-1}\equiv 1 \bmod b kk1amodbkk11modb
{ 35 k 1 − 1 ≡ 1   m o d   3 21 k 2 − 1 ≡ 1   m o d   5 15 k 3 − 1 ≡ 1   m o d   7 \left\{\begin{array}{l} 35k_1^{-1} \equiv 1 \bmod 3 \\ 21k_2^{-1} \equiv 1 \bmod 5 \\ 15k_3^{-1} \equiv 1 \bmod 7 \end{array}\right. 35k111mod321k211mod515k311mod7
求得 k 1 − 1 = 2 , k 2 − 1 = 1 , k 3 − 1 = 1 k_1^{-1}=2,k_2^{-1}=1,k_3^{-1}=1 k11=2,k21=1,k31=1

由中国剩余定理的通解公式, 求得
X ≡ k 1 k 1 − 1 b 1 + k 2 k 2 − 1 b 2 + … … + k n k n − 1 b n   m o d   m X ≡ 35 × 2 × 2 + 21 × 1 × 3 + 15 × 1 × 2   m o d   3 × 5 × 7 X ≡ 233   m o d   105 X ≡ 23   m o d   105 \begin{aligned} X \equiv & k_{1} k_{1}^{-1} b_{1}+k_{2} k_{2}^{-1} b_{2}+\ldots \ldots+k_{n} k_{n}{ }^{-1} b_{n} \bmod m\\ X \equiv & 35\times2\times2+21\times1\times3+15\times1\times2 \bmod 3\times5\times7\\ X \equiv & 233\bmod 105\\ X \equiv & 23 \bmod 105 \end{aligned} XXXXk1k11b1+k2k21b2+……+knkn1bnmodm35×2×2+21×1×3+15×1×2mod3×5×7233mod10523mod105
所以 X = 105 t + 23 X=105t+23 X=105t+23

求大数的取模结果

求  2 1000000   m o d   77 求 \ 2^{1000000}\bmod 77  21000000mod77

X ≡ b   m o d   77 X\equiv b \bmod 77 Xbmod77, 令 X = 2 1000000 ,   m = m 1 × m 2 = 11 × 7 = 77 ,   gcd ⁡ ( 11 , 7 ) = 1 X=2^{1000000},\ m=m_1\times m_2=11\times 7 =77,\ \gcd(11,7)=1 X=21000000, m=m1×m2=11×7=77, gcd(11,7)=1

此处将模数拆成了两个互质的数

已知: X ≡ k 1 k 1 − 1 b 1 + k 2 k 2 − 1 b 2 + … … + k n k n − 1 b n   m o d   m X \equiv k_{1} k_{1}^{-1} b_{1}+k_{2} k_{2}^{-1} b_{2}+\ldots \ldots+k_{n} k_{n}{ }^{-1} b_{n} \bmod m Xk1k11b1+k2k21b2+……+knkn1bnmodm

将其拆成两个一次同余式
{ 11 k 1 − 1 ≡ b 1   m o d   7 7 k 2 − 1 ≡ b 2   m o d   11 \left\{\begin{array}{l} 11k_1^{-1} \equiv b_1 \bmod 7 \\ 7k_2^{-1} \equiv b_2 \bmod 11 \\ \end{array}\right. {11k11b1mod77k21b2mod11
由乘法逆元的性质: k k − 1 ≡ a   m o d   b ⇒ k k − 1 ≡ 1   m o d   b kk^{-1}\equiv a \bmod b \Rightarrow kk^{-1}\equiv 1 \bmod b kk1amodbkk11modb
{ 11 k 1 − 1 ≡ 1   m o d   7 7 k 2 − 1 ≡ 1   m o d   11 \left\{\begin{array}{l} 11k_1^{-1} \equiv 1 \bmod 7 \\ 7k_2^{-1} \equiv 1 \bmod 11 \\ \end{array}\right. {11k111mod77k211mod11
所以 k 1 − 1 = 2 , k 2 − 1 = 8 k_1^{-1}=2, k_2^{-1}=8 k11=2,k21=8,

注意到

b 1 = 2 1000000   m o d   7 = ( 2 6 ) 166666 2 4 ≡ 2   m o d   7 b_1=2^{1000000}\bmod 7=(2^6)^{166666}2^4\equiv 2\bmod 7 b1=21000000mod7=(26)166666242mod7

b 2 = 2 1000000   m o d   11 = ( 2 10 ) 100000 ≡ 1   m o d   11 b_2=2^{1000000}\bmod 11=(2^{10})^{100000}\equiv 1\bmod 11 b2=21000000mod11=(210)1000001mod11

X ≡ M 1 M 1 − 1 b 1 + M 2 M 2 − 1 b 2   m o d   m ≡ ( 11 × 2 × 2 + 7 × 8 × 1 )   m o d   77 ≡ 23   m o d   77 X\equiv M_1M_1^{-1}b_1+M_2M_2^{-1}b_2\bmod m \equiv (11\times2\times2+7\times8\times1) \bmod 77\equiv 23 \bmod 77 XM1M11b1+M2M21b2modm(11×2×2+7×8×1)mod7723mod77

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值