中國剩餘定理求解
阿新 • • 發佈:2018-12-02
最近在學習網路安全課程,其中涉及的數論確定令人難以琢磨,下面會對相關內容整理成學習筆記~參考來源:https://blog.csdn.net/bobodem/article/details/49426815
典經的、不同除數的同餘式組解法
X≡R1 (mod m1 ) eg:X≡2 (mod 3)
X≡R2 (mod m2) eg:X≡3 (mod 5 )
X≡R3 (mod m3) eg:X≡2 (mod 7 )
名詞註釋
1 餘數R:R1=2、R2=3、R3=2
2 模,亦即除數m:例中m1=3、m2=5、m3=7
3 模的最小公倍數G:G=m1*m2*m3,例中M=3*5*7=105
4 衍數(區域性公倍數)y:Y1=m2m3、Y2=m1m3,Y3=m1m2,例中Y1=5*7=35、Y2=3*7=21、Y3=3*5=15
5 乘率C:這是解算中國剩餘定理的關鍵,而計算“乘率”的方法,是秦九韶在《數書九章》一書中首次提出 的,稱之為“大衍求一術”。“求一”就是使(衍數*乘率)除以模(除數),而餘數為1。即:
衍數Y*乘率C≡1 (mod m),乘率C可以經過反算而得到。例中Y1C1≡1 (mod 3)、
Y2C2≡1 (mod 5) 、Y3C3≡1 (mod 7)。
計算步驟
計算C1方法。由Y1C1≡1 (mod 3)——>35C1≡1 (mod 3)——>(35C1-1) / 7=整數N ,得C1=-1。因為35*-1=-35,-35-1=-36,-36÷3=-12,-12是整數,合符要求。C2、C3之計算也相仿。乘率C之計算見下表:
同餘式 i | 衍數Y | 乘率C | 餘1 | 模m | 檢驗 (Y*C-1)/m = 整數 |
---|---|---|---|---|---|
1 | 35 | -1 | 1 | 3 | (35*C-1)/3 =N (35*-1-1)/3 = -12 |
2 | 21 | 1 | 1 | 5 | (21*C-1)/5 =N (21*1-1)/5 = 4 |
3 | 15 | 1 | 1 | 7 | (15*C-1)/7 =N (15*1-1)/7 = 2 |
最終結果:X≡R1Y1C1+R2Y2C2+R3Y3C3 (mod G)
即X≡Σ餘數*衍數*乘率 (mod G),見下表計算:
i | 餘數R | 衍數Y | 乘率C | R*Y*C |
---|---|---|---|---|
1 | 2 | 35 | -1 | -70 |
2 | 3 | 21 | 1 | 63 |
3 | 2 | 15 | 1 | 30 |
Σ | 23 |
X≡23(mod 105)