1、 1把一个n次多项式f(x)anxnan1xn1a1xa0改写成如下形式:f(x)anxnan1xn1a1xa0(anxn1an1xn2a1)xa0(anxn2an1xn3a2)xa1)xa0 (anxan1)xan2)xa1)xa0 求多项式的值时,首先计算最内层括号内一次多项式的值,然后由内向外逐层计算一次多项式的值 这样通过一次式的反复运算,逐步得出高次多项式的值的方法称作秦九韶算法观察上述秦九韶算法中的 n 个一次式可见,只要令v0anvkvk1xank 其中 k1,2,n 就得到了一个递推关系这个递推关系是一个反复执行的步骤,可用循环语句来实现 2进位制是人们为了计数和运算方便而约定
2、的记数系统“满十进一”就是十进制,“满二进一”就是二进制,“满k进一”就是,k进制的基数是k,因此k进制需要使用 数字 3若k是一个大于1的整数,以k为基数的k进制数可以表示为一串数字连写在一起的形式:anan1a1a0(k)(0ank,0an1,a1,a0k)其中右下角括号内的数字k表明此数是k进制数,十进制的基数不标注k进制k个 4十进制数与k进制数可以相互转换(1)把k进制数化为十进制数的方法是:先把这个k进制数写成用各位上的数字与k的幂的乘积之和的形式,再按照十进制数的运算规则计算出结果如anan1a2a1a0(k).其中要注意的是,k的幂的最高次数应是该k进制的位数减去1,然后逐个减
3、小1,最后是0次幂(2)将十进制化为k进制数的方法叫即用k连续去除该十进制数或所得的商,直到商是零为止,然后把每次所得的余数倒着排成一列,就是相应的k进制数例如,把十进制数化为二进制数的方法是除2取余法anknan1kn1a2k2a1ka0除k取余法 重点:(1)秦九韶算法的原理、算法思想、算法设计(2)进位制的概念及其表示,进位制的相互转换及算法设计 难点:(1)递推关系的算法设计(2)k进制数表示方法的理解及k进制数与十进制数之间相互转换1理解秦九韶算法的关键:一是弄清算法原理是加法对乘法的分配律,二是弄清算法设计中递推关系是一个反复执行的运算,故用循环语句来实现(1)秦九韶算法过程分析:
4、由于v0an,vkvk1xank.其中 k1,2,n.这样我们便可由 v0 依次求出 v1,v2,vn:v1v0 xan1,v2v1xan2,v3v2xan3,vnvn1xa0.于是我们用 v 来记录每次一次式计算的结果,最初赋值van,用 vv*xani实现递推循环,i 的初值为 1,ii1 记录循环次数,in 控制何时结束循环输出 v.f(x)的系数 ak用一个循环语句实现输入(2)f(x)anxnan1xn1a1xa0当xx0时,求函数值f(x0)的算法设计 程序框图:程序语句:INPUT“n”;n i0 WHILE in INPUT“ai”;a(i)ii1 WEND INPUT“x0”
5、;x i1 va(n)WHILE i0 INPUT“ai”;a vv*xa ii1 WEND PRINT v END(3)用秦九韶算法将一个多项式(n 次)的至多n(n1)2次乘法和 n 次加法运算减少为至多 n 次乘法和 n 次加法运算,大大提高了运算效率通过学习体会提高运算效率对用计算机解决问题的好处,从而明确算法设计的一个重要问题提高运算效率,进一步领悟算法思想 2进位制的理解与程序设计(1)进位制及其转换是计算机的基础知识,它有助于了解计算机的工作原理,要切实弄明白(2)二进制数只用0和1两个数字,这正好和电路的“通”和“断”两种状态相对应,因此计算机内部都使用二进制,计算机在进行运算
6、时,都是先将输入的十进制数转化为二进制数进行运算和存储后,再转换为十进制数输出(3)k进制数转换为十进制数的方法是:anan1a2a1a0(k)anknan1kn1a2k2a1ka0我们用ta MOD 10来求k进制数a除以10的余数即此数的个位,用aa10来记录a除以10的整数商故把k进制数a(共有n位)转化为十进制数b的算法程序为:INPUT“a,k,n”;a,k,n i1 b0ta MOD 10DObbt*k(i1)aa10ta MOD 10ii1LOOP UNTIL inPRINT bEND 其当型循环程序为:INPUT“a,k,n”;a,k,n i1 b0 ta MOD 10 WHI
7、LE in bbt*k(i1)aa10 ta MOD 10 ii1 WEND PRINT b END 程序框图 依据此程序:第1轮(i1)循环结束时ba0.第2轮(i2)循环结束时ba1ka0.第j轮(ij)循环结束时,baj1kj1aj2kj2a1ka0.最后结束时,banknan1kn1a1ka0.(4)将一个十进制数a化为k进制数b的步骤:第一步:将给定的十进制整数除以基数k,余数便是等值的k进制的最低位 第二步:将上一步的商再除以基数k,余数便是等值的k进制数的次低位 第三步:重复第二步,直到最后所得的商等于0为止各次除得的余数,便是k进制各位的数,最后一次的余数是最高位即除k取余法
8、算法程序为:INPUT“a,k”;a,k b0 i0 DO qak ra MOD k bbr*10i ii1 aq LOOP UNTIL q0 PRINT b END 用WHILE语句编程如下:(1)十进制数a化为k进制数b的程序语句 INPUT“a,k”;a,k b0 i0 q1 WHILE q0 qak 求a除以k的整数商 ra MOD k求a除以k的余数 bbr*10i把余数依次从右到左排列得到k进制数b ii1 aq WEND PRINT b END(5)k进制数的性质:在k进制中,具有k个数字符号;例如十进制,有0,1,2,3,4,5,6,7,8,9十个数字十六进制有09和A、B、C
9、、D、E、F共十六个数字 在k进制中,由低位向高位是按“逢k进一”的规则进行计数例如十进制,逢“十”进一,二进制逢“二”进一(6)非十进制数之间的转化一般应先转化成十进制数,再将这个十进制数转化为要化成的另一种进位制数 一、选择题 1三位七进制的数表示的最大的十进制的数是()A322 B332 C342D352 答案 C 解析 三位七进制数中最大的为666(7)672676342.2下列各数转化成十进制后最小的数是()A111 111(2)B210(6)C1 000(4)D81(9)答案 A 解析 将它们都化为十进制数为:A表示63,B表示78,C表示64,D表示73.3已知一个k进制的数13
10、2与十进制的数30相等,那么k等于()A7或4B7 C4D都不对 答案 C 解析 由k23k230得,k4或k7(舍去)4类似于十进制中逢10进1,十二进制的进位原则是逢12进1,采用数字0,1,2,9和字母M,N共12个计数符号,这些符号与十进制的对应关系如下表:十二进制0123456789MN十进制01234567891011 例如,由于5633122101211,所以十进制中563在十二进制中就被表示为3MN,那么十进制中的2010在十二进制中被表示为()A11N6 B6N11 C12N4 D1N24 答案 A 解析 20101123112211126(11N6)(12)二、解答题 5已
11、知一个5次多项式为f(x)5x52x43.5x32.6x21.7x0.8.用秦九韶算法求这个多项式当x5时的值写出其运算过程 解析 根据秦九韶算法,把多项式改写成如下形式:f(x)(5x2)x3.5)x2.6)x1.7)x0.8 按照从内到外的顺序,依次计算一次多项式当x5时的值 x5 a55 v0a55;a42 v1v0 xa455227;a33.5v2v1xa32753.5138.5;a22.6v3v2xa2138.552.6689.9;a11.7 v4v3xa1689.951.73451.2;a00.8 v5v4xa03451.250.817255.2.所以,当x5时,多项式的值等于17255.2.