【CINTA06】CINTA第六次作业
题1
运用 C R T 求解: x ≡ 8 ( m o d 11 ) x ≡ 3 ( m o d 19 ) 运用 CRT 求 解: x ≡ 8 (mod 11) x ≡ 3 (mod 19) 运用CRT求解:x≡8(mod11)x≡3(mod19)
解: a = 8 , p = 11 , b = 3 , q = 19 , n = p q = 209 p − 1 = 7 , q − 1 = 7 x = ( a q q − 1 + b p p − 1 ) m o d n = 41 解: a=8,p=11,b=3,q=19,n=pq=209\\ p^-1^=7,q^-1^=7\\ x=(aqq^-1^+bpp^-1^)modn=41 解:a=8,p=11,b=3,q=19,n=pq=209p−1=7,q−1=7x=(aqq−1+bpp−1)modn=41
题2
运用 C R T 求解: x ≡ 1 ( m o d 5 ) x ≡ 2 ( m o d 7 ) x ≡ 3 ( m o d 9 ) x ≡ 4 ( m o d 11 ) 运用 CRT 求解: x ≡ 1 (mod 5) x ≡ 2 (mod 7) x ≡ 3 (mod 9) x ≡ 4 (mod 11) 运用CRT求解:x≡1(mod5)x≡2(mod7)x≡3(mod9)x≡4(mod11)
解: M = 5 ∗ 7 ∗ 9 ∗ 11 = 3465 记 b 0 = M / 5 = 693 , b 1 = M / 7 = 495 , b 2 = M / 9 = 385 , b 3 = M / 11 = 315 b i b i − 1 = 1 m o d m i b 0 − 1 = 2 , b 1 − 1 = 3 , b 2 − 1 = 4 , b 3 − 1 = 8 x = ∑ a i b i b i − 1 m o d M = 1731 解: M=5*7*9*11=3465\\ 记b~0~=M/5=693,b~1~=M/7=495,b~2~=M/9=385,b~3~=M/11=315\\ b~i~b~i~^-1^=1mod\quad m_i\\ b~0~^-1^=2,b~1~^-1^=3,b~2~^-1^=4,b~3~^-1^=8\\ x=∑a~i~b~i~b~i~^-1^modM=1731 解:M=5∗7∗9∗11=3465记b 0 =M/5=693,b 1 =M/7=495,b 2 =M/9=385,b 3 =M/11=315b i b i −1=1modmib 0 −1=2,b 1 −1=3,b 2 −1=4,b 3 −1=8x=∑a i b i b i −1modM=1731
题3
手动计算 20002019 ( m o d 221 ) ,不允许使用电脑或者其他电子设备。 [ 提示:这是一道看上去与中国剩余定理无关的计算题。 ] 手动计算 20002019 (mod 221),不允许使用电脑或者其他电子设备。[提示:这是一 道看上去与中国剩余定理无关的计算题。] 手动计算20002019(mod221),不允许使用电脑或者其他电子设备。[提示:这是一道看上去与中国剩余定理无关的计算题。]
解: 221 = 13 ∗ 1720002019 《 = 》( 11 , 7 ) x = 11 m o d 13 , x = 7 m o d 17 a = 11 , p = 13 , b = 7 , q = 17 p − 1 = 4 , q − 1 = 10 x = ( a q q − 1 + b p p − 1 ) m o d 221 = 2420002019 ( m o d 221 ) = 24 解: 221=13*17 20002019《=》(11,7) x=11mod13,x=7mod17 a=11,p=13,b=7,q=17 p^-1^=4,q^-1^=10 x=(aqq^-1^+bpp^-1^)mod221=24 20002019 (mod 221)=24 解:221=13∗1720002019《=》(11,7)x=11mod13,x=7mod17a=11,p=13,b=7,q=17p−1=4,q−1=10x=(aqq−1+bpp−1)mod221=2420002019(mod221)=24
题7
实现一个利用 C R T 求解同余方程的程序( P y t h o n 或者 C 语言都可以 实现一个利用 CRT 求解同余方程的程序(Python 或者 C 语言都可以 实现一个利用CRT求解同余方程的程序(Python或者C语言都可以
求逆元思路:由费马小定理可知: p q − 1 = 1 m o d q p q − 2 = p − 1 m o d q p − 1 = p q − 2 m o d q 求逆元思路: 由费马小定理可知: p^q-1^=1modq p^q-2^=p^-1^modq p^-1^=p^q-2^modq 求逆元思路:由费马小定理可知:pq−1=1modqpq−2=p−1modqp−1=pq−2modq
#include<iostream>
using namespace std;
int inversion(int x, int y)
{
int a = 1;
if (y == 2)
{
if (x % 2 != 0)
return a;
}
for (int i = 0; i <y-2 ; i++)
{
a = a * x % y;
}
return a;
}
int CRT(int a,int p,int b,int q)
{
int s = inversion(p, q);
int r = inversion(q, p);
int x = a * q * r + b * p * s;
x = x % (p * q);
return x;
}
int main()
{
int a, p, b, q;
cout << "请输入a,p,b,q(p,q互素):" << endl;
cin >> a >> p >> b >> q;
int x = CRT(a, p, b, q);
cout << "求得:";
cout << x << endl;
}