余定理"或"中国剩余定理".设有物m个,则其本质为由方程组 求m的正整数解.
试为此问题编写流程图和伪代码.
反思与感悟 此算法的本质是从最小2开始,逐个实验是否满足方程组,对人而言是个笨法,但很适合计算机,以上程序求出的是m的最小值.
跟踪训练1 有一堆围棋子,五个五个地数,最后余下2个;七个七个地数,最后余下3个;九个九个地数,最后余下4个.请用伪代码表示"求出这堆棋子至少有多少个"的一种算法.
类型二 辗转相除法的现代实现
例2 你能根据"欧几里得辗转相除法"设计一种求两个正整数a,b(a>b)的最大公约数的一个算法吗?并画出流程图,编写伪代码.
反思与感悟 利用辗转相除法求给定的两个数的最大公约数,即利用带余除法,用数对中较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的数对,再利用带余除法,直到大数被小数除尽,则这时的较小数就是原来两个数的最大公约数.
跟踪训练2 用辗转相除法和更相减损术求261和319的最大公约数.
类型三 求方程f(x)=0近似解的算法
例3 画出用区间二分法求方程x3-x-1=0在区间[1,1.5]上的一个近似解(误差不超过0.001)的一个算法流程图并编写伪代码.
反思与感悟 在此算法中用到了条件语句和循环语句,所以用"Do"是因为要执行再判断是否满足条件,因为不知循环次数,所以也不宜用"For"语句.
跟踪训练3 改造例3中伪代码,用来求f(x)=ln x+2x-1在区间[a,b]上的一个近似解(误差不超过c).