1、gkstk精品课件,gkstk精品课件,中国剩余定理 (孙子问题),gkstk精品课件,“孙子问题”记载在孙子算经中,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”,孙子问题的现代数学描述“孙子问题”相当于求关于x,y,z的方程组的正整数解。,gkstk精品课件,解题分析,(1)如何依次检索正整数?,(采用循环结构),(2)该循环何时结束?,(找到满足条件的整数为止),(3)一个正整数m什么时候满足方程?,(m同时满足被3除余2,被5除余3,被7除余2),引入记号:m被3除余2用符号表示为Mod(m,3)2;m被5除余3用符号表示为Mod(m,5)3;m被7除
2、余3用符号表示为Mod(m,7)2,gkstk精品课件,流程图,gkstk精品课件,伪代码,m 2While Mod (m,3)2_ or Mod (m,5)3_ or Mod (m,7)2 m m1End WhilePrint m,gkstk精品课件,例1 有3个连续的自然数,其中最小的能被15整除,中间的能被17整除,最大的能被19整除,求满足要求的一组三个连续的自然数。,分析:本题的其实就是求下面不定方程组的正整数解.,算法,S1 取m1;S2 当m不能被15整除,或m1不能被17整除,或m 2不能被19整除,则mm1,转S2;否则输 出m,m1,m2,算法结束.,gkstk精品课件,流程图,gkstk精品课件,m 1While Mod (m,15)2_ or Mod (m1,17)0_ orMod (m2,19)0 m m1End WhilePrint m,m+1,m+2,伪代码,gkstk精品课件,思考:以下伪代码是否可行?,k1a15kWhile Mod(a1,17)0 or_ Mod(a2,19)0 kk1 a15kEnd While Print a,a1,a2,gkstk精品课件,本课小结,1韩信点兵孙子问题的求解算法;,2利用循环结构实现整数的搜索;,3利用逻辑运算符Or实现多条件的判断。,