中国剩余定理概念及模板解释
2016-07-18 17:16
537 查看
1,中国剩余定理的概念
定义正如上图这个同余方程组;求解x;
并且m1,m2,……..mn都是互质的正整数;
其中x是他们唯一的解;
2;应用;
a恒等于b(mod m)表示a,b对于模m同余;
3;模板解释;
poj1006Biorhythms
链接;http://poj.org/problem?id=1006
就该题而言;
m1=23;
m2=28;
m3=33;
三者互质则适合中国剩余定理;则有
M1 = 28*23=924;
M2=23*33=759;
M3=23*28=644;
Ai * Mi恒等于 1(mod mi);i表示1,2,3;
<为什么要取1>;
是为了要求余数23的话,只要乘以23就可以,要求余数为28的话,只要乘以28就可以!利用这个来循环求解Ai;
利用循环求Ai;
最后的结果就是;
x恒等于M1A1c1+M2A2c2+M3A3c(modM);
就这题而言,x是有范围的,因此要这样;
该篇博客理解的关键在于第二附图的理解;
定义正如上图这个同余方程组;求解x;
并且m1,m2,……..mn都是互质的正整数;
其中x是他们唯一的解;
2;应用;
a恒等于b(mod m)表示a,b对于模m同余;
3;模板解释;
poj1006Biorhythms
链接;http://poj.org/problem?id=1006
就该题而言;
m1=23;
m2=28;
m3=33;
三者互质则适合中国剩余定理;则有
M1 = 28*23=924;
M2=23*33=759;
M3=23*28=644;
Ai * Mi恒等于 1(mod mi);i表示1,2,3;
<为什么要取1>;
是为了要求余数23的话,只要乘以23就可以,要求余数为28的话,只要乘以28就可以!利用这个来循环求解Ai;
for(i = 1; i < 23; i++){ if((m1*i)%23==1){ t1 = i; break; } }
利用循环求Ai;
最后的结果就是;
x恒等于M1A1c1+M2A2c2+M3A3c(modM);
#include<stdio.h>
int main()
{
int p, e, i, d, k, m1, m2, m3, t1=0, t2=0,t3=0,x;
k =0;
m1 = 924;
m2 = 759;
m3 = 644;
for(i = 1; i < 23; i++){ if((m1*i)%23==1){ t1 = i; break; } }
for(i = 1; i < 28; i++){
if((m2*i)%28==1){
t2 = i;
break;
}
}
for(i = 1; i < 33; i++){
if((m3*i)%33==1){
t3 = i;
break;
}
}
//printf("%d %d %d\n",t1,t2,t3);
while(scanf("%d %d %d %d",&p,&e, &i, &d) != EOF){
k++;
if(p == -1 && e == -1 && i == -1 && d == -1){
break;
}
x = 924*t1*p+759*t2*e+644*t3*i; x = (x-d+21252)%21252; if(x == 0){ x = 21252; }
printf("Case %d: the next triple peak occurs in %d days.\n",k, x);
}
return 0 ;
}
就这题而言,x是有范围的,因此要这样;
x = 924*t1*p+759*t2*e+644*t3*i; x = (x-d+21252)%21252; if(x == 0){ x = 21252; }
该篇博客理解的关键在于第二附图的理解;
相关文章推荐
- 3.2013/06/11_韩信点兵
- poj_1006 Biorhythms
- 中国剩余定理的解析及记忆(扩展欧几里得算法的运用)
- 中国剩余定理在ACM上的使用
- 求解线性同余方程组
- POJ 1006 Biorhythms(中国剩余定理)
- POJ1006|中国剩余定理
- HDU 5446 Unknown Treasure
- POJ1006: 中国剩余定理
- POJ-1006 Biorhythms
- poj1006
- 中国剩余定理(互质+非互质)
- CodeForces 687B
- 中国剩余定理。。。
- Bzoj1951 [Sdoi2010]古代猪文
- POJ 1006 Biorhythms(中国剩余定理)
- MAT-中国剩余定理
- hdu 1370 中国剩余定理
- POJ1006: 中国剩余定理的完美演绎
- HDU 5446 Unknown Treasure