资源描述
1.3算法案例课时目标通过三种算法案例:辗转相除法与更相减损术,秦九韶算法,进位制,进一步体会算法的思想,提高算法设计水平,体会中国古代数学对世界的贡献1辗转相除法(1)辗转相除法,又叫欧几里得算法,是一种求两个正整数的最大公约数的古老而有效的算法(2)辗转相除法的算法步骤第一步,给定两个正整数m,n.第二步,计算m除以n所得的余数r.第三步,mn,nr.第四步,若r0,则m、n的最大公约数等于m;否则,返回第二步2更相减损术第一步,任意给定两个正整数,判断它们是否都是偶数若是,用2约简;若不是,执行第二步第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数3秦九韶算法把一个n次多项式f(x)anxnan1xn1a1xa0改写成如下形式:(anxan1)xan2)xa1)xa0,求多项式的值时,首先计算最内层括号内一次多项式的值,即v1anxan1,然后由内向外逐层计算一次多项式的值,即v2v1xan2,v3v2xan3,vnvn1xa0这样,求n次多项式f(x)的值就转化为求n个一次多项式的值4进位制进位制是人们为了计数和运算方便而约定的记数系统,“满k进一”就是k进制,k进制的基数是k.把十进制转化为k进制数时,通常用除k取余法一、选择题1下列说法中正确的个数为()(1)辗转相除法也叫欧几里得算法;(2)辗转相除法的基本步骤是用较大的数除以较小的数;(3)求最大公约数的方法,除辗转相除法之外,没有其他方法;(4)编写辗转相除法的程序时,要用到循环语句A1 B2 C3 D4答案C解析(1)、(2)、(4)正确,(3)错误2用更相减损术求294和84的最大公约数时,需做减法的次数是()A2 B3 C4 D5答案C解析由于294和84都是偶数,所以用2约简:2942147,84242,又由于147不是偶数,所以14742105,1054263,634221,422121,故需做4次减法,故选C.31 037和425的最大公约数是()A51 B17 C9 D3答案B解析1 0374252187,425187251,18751334,5134117,34172,即1 037和425的最大公约数是17.4用秦九韶算法计算多项式f(x)6x65x54x43x32x2x7在x0.4时的值时,需做加法和乘法的次数的和为()A10 B9 C12 D8答案C解析f(x)(6x5)x4)x3)x2)x1)x7加法6次,乘法6次,6612(次),故选C.5已知f(x)x52x33x2x1,应用秦九韶算法计算x3时的值时,v3的值为()A27 B11 C109 D36答案D解析将函数式化成如下形式f(x)(x0)x2)x3)x1)x1由内向外依次计算:v01,v11303,v233211,v3113336,v43631109,v510931328.6下列有可能是4进制数的是()A5 123 B6 542 C3 103 D4 312答案C解析4进制数每位上的数字一定小于4,故选C.二、填空题7辗转相除法程序中有一空请填上答案a MOD b解析MOD用来表示a除以b的余数8更相减损术程序中有两空请填上答案abbr9已知三个数12(16),25(7),33(4),将它们按由小到大的顺序排列为_答案33(4)12(16)25(7)解析将三个数都化为十进制数12(16)116218,25(7)27519,33(4)34315,33(4)12(16)25(7)三、解答题10用两种方法求210与98的最大公约数解用辗转相除法:21098214,98147.210与98的最大公约数为14.用更相减损术:210与98都是偶数,用2约简得105和49,1054956,56497,49742,42735,35728,28721,21714,1477.210与98的最大公约数为2714.11用秦九韶算法计算多项式f(x)x612x560x4160x3240x2192x64当x2时的值解将f(x)改写为f(x)(x12)x60)x160)x240)x192)x64由内向外依次计算一次多项式当x2时的值v01,v1121210,v21026040,v340216080,v480224080,v580219232,v6322640.f(2)0,即x2时,原多项式的值为0.能力提升12把111化为五进制数解111化为五进制数为421(5)13把10 231(5)化为四进制数解先化成十进制数10 231(5)154053252351162550151691再化为四进制数10 231(5)22 303(4).1辗转相除法与更相减损术的区别和联系(1)都是求最大公约数的方法(2)二者的实质都是递归的过程(3)二者都要用循环结构来实现2秦九韶算法的特点秦九韶算法的特点在于把求一个n次多项式的值转化为求n个一次多项式的值,即把求f(x)anxnan1xn1a1xa0的值转化为求递推公式:这样可以最多计算n次乘法和n次加法即可得多项式的值,和直接代入多项式相比减少了乘法的运算次数,提高了运算效率3十进制与其他进制的转化(1)将k进制转化为十进制的方法:先把k进制数写成各位上的数字与k的幂的乘积的形式,再按十进制的运算规则计算(2)将十进制化成k进制的方法:用除k取余法,用k连续去除十进制数所得的商,直到商为零为止,然后将各步所得的余数倒序写出,即为相应的k进制数
展开阅读全文