三数为a b c余数分别为 m1 m2 m3,%为求余计算,&&意为“且”
1、分别找出能被两个数整除,而满足被第三个整除余一的最小的数。
k1%b==k1%c==0 && k1%a==1;
k2%a==k2%c==0 && k2%b==1;
k3%a==k3%b==0 && k3%c==1;
2、将三个未知数乘对应数字的余数再加起来,减去这三个数的最小公倍数的整数倍即得结果。
Answer = k1×m1 + k2×m2 + k3×m3 - P×(a×b×c);
P为满足Answer > 0的最大整数;
或者 Answer = (k1×m1 + k2×m2 + k3×m3)%(a×b×c) ;
怎样算的K1,算法是即b*c如果得数除以a余1则k1等于b*c,如果余数不等于1怎b*c*i(i=1,2,3,....n)知道余数为1为止,然后得到k1,K2,K3同理,然后再按照上述2得到结果;
例题
韩信点兵
时间限制:
3000 ms | 内存限制:
65535 KB
难度:

本文介绍了中国剩余定理在‘韩信点兵’问题中的应用,阐述了如何通过算法求解k1、k2、k3的过程。算法核心是通过不断乘以m1、m2、m3并检查除以a、b、c的余数,直至找到满足条件的余数。例如,在解决此类问题时,理解这一原理将有助于解决类似题目。
最低0.47元/天 解锁文章
3199

被折叠的 条评论
为什么被折叠?



