中国剩余定理求解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Totoro1745/article/details/80051755

最近在学习网络安全课程,其中涉及的数论确定令人难以琢磨,下面会对相关内容整理成学习笔记~参考来源: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)

猜你喜欢

转载自blog.csdn.net/Totoro1745/article/details/80051755