高考数学常见题型解法归纳反馈训练第89讲四种算法案例
第89讲 四种算法案例
【知识要点】
算法案例有辗转相除法、更相减损术、秦九韶算法和进位制.
一、辗转相除法
辗转相除法求两个数的最大公约数,其算法可以描述如下:
① 输入两个正整数m 和n ;
② 求余数r :计算m 除以n ,将所得余数存放到变量r 中;
③更新被除数和余数:m =n ,n =r ;
④判断余数r 是否为0.若余数为0,则输出结果;否则转向第②步继续循环执行
如此循环,直到得到结果为止.
例:利用辗转相除法求6105与2146的最大公约数
6105=2146×2+1813 2146=1813×1+333 1813=333×5+148
333=148×2+37 148=37×4+0 最后的除数37是6105与2146的最大公约数.
二、更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术.在《九章算术》中记
载了更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母?子之数,以少减多,更相减损,求其等也,以等数约之.
解题步骤:以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个相等的数就是所求的最大公约数.
例:用更相减损术求98与63的最大公约数
98-63=35 63-35=28 35-28=7 28-7=21 21-7=14 14-7=7
所以98和63的最大公约数是7.
三、秦九韶算法
秦九韶算法适用一般的多项式121210()n n n n n n f x a x a x a x a x a ----=+++???++
的求值问题.用秦九韶算法求一般多项式121210()n n n n n n f x a x a x a x a x a ----=+++???++.当0x x =时的函
数值,可把n 次多项式的求值问题转化成求n 个一次多项式的值的问题,即求
0n v a = 1v =x v 0+1-n a 2v =1v x +2n a - 3v =2v x +3n a - …… n v =x v n 1-+n a
这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现.
用秦九韶算法求一般多项式121210()n n n n n n f x a x a x a x a x a ----=+++???++.当0x x =时的函数值,需
要n 次乘法运算,n 次加法运算.
四、进位制
1、概念
进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值.可使用数字符号的个数称为基数,基数为n ,即可称n 进位制,简称n 进制.现在最常用的是十进制,通常使用10个阿拉伯数字0—9进行记数.
对于任何一个数,我们可以用不同的进位制来表示.比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的.
一般地,若k 是一个大于1的整数,那么以k 为基数的k 进制可以表示为:
110()110...(0,0,...,,)n n k n n a a a a a k a a a k --<<≤<,
而表示各种进位制数一般在数字右下脚加注来表示,如111001(2)表示二进制数,34(5)表示5进制数.
2、进位制间的转换
(1)非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:
0111011.........)(.....a k a k a k a k a a a a n n n n n n +?++?+?=---
(2)把十进制数转换为k 进制数,一般利用 “除k 取余法”.
例:把89化为二进制数.
2|892|44
12|22
02|11
02|5
12|2
12|1
02|01↑↑↑↑↑↑↑余数
所以289=1011001()
注意:利用除k 取余法解答时,最后的余数是从下往上写,不要从上往下写.
(3)非十进制之间的转换,先把它转换成十进制,再把十进制转换成其他进制.
【方法讲评】 算法案例一
辗转相除法
解题步骤
1、 输入两个正整数m 和n ;
2、求余数r :计算m 除以n ,将所得余数存放到变量
r 中;3、更新被除数和余数:m =n ,n =r ;4、判断余数r 是否为0.若余数为0,则输
出结果;否则转向第②步继续循环执行
如此循环,直到得到结果为止.
【例1】数4557,1953,5115的最大公约数是( )
A .31
B .93
C .217
D .651
【点评】求三个数的最大公约数,可以先求其中两个数的最大公约数,再求另外两个数的最大公约数,再求这两个最大公约数的最大公约数.
【反馈检测1】三个数390, 455, 546的最大公约数是 ( )
A.65
B.91
C.26
D.13
算法案例二
更相减损术 解题步骤
以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数,继续这个操作,直到所得的数相等为止,则这个相等的数就是所求的最大公约数.
【例2】根据我国古代数学名著《九章算术》中的“更相减损术”.求得144,28的最大公约数为 ( )
A .4
B .2
C .0
D .14
【解析】14428116,1162888,882860,602832,32284,-=-=-=-=-= 28424,24420,-=-= 20416,16412,1248,844-=-=-=-=,所以最大公约数是4.
【点评】本题就是利用更相减损术求的最大公约数,也可以利用辗转相除法求解.
【反馈检测2】459和357的最大公约数是( )
A .3
B .9
C .17
D .51
算法案例三 秦九韶算法
解题步骤 把n 次多项式的求值问题转化成求n 个一次多项式的值的问题,即求
0n v a = 1v =x v 0+1-n a 2v =1v x +2n a - 3v =2v x +3n a - …… n v =x v n 1-+n a
【例3】已知532
()231f x x x x x =++++,应用秦九韶算法计算当3x =时3v 的值为_________.
【点评】121210()n n n n f x a x a x a x a x a --=+++++L 利用秦九韶算法要经过n 次乘法和n 次加法.在利
用秦九韶算法计算时,必须把缺的项补充起来,缺的指数幂的项的系数为零即可,并按照降幂排列.
【反馈检测3】用秦九韶算法计算多项式34
()1232f x x x x =+-+当1x =-时的值时,2v 的结果为______.
A .4-
B .1-
C .5
D .6
算法案例四
进位制
解题步骤 1、非十进制数转换为十进制数比较简单,只要计算下面的式子值即可:
0111011.........)(.....a k a k a k a k a a a a n n n n n n +?++?+?=---;
2、把十进制数转换为k 进制数,一般利用 “除k 取余法”.
3、非十进制之间的转换,先把它转换成十进制,再把十进制转换成其他进制.
【例4】将二进制数)2(11100转化为四进制数,正确的是( )
A .)4(120
B .)4(130
C .)4(200
D .)4(202
【点评】非十进制之间的转换,先把它转换成十进制,再把十进制转换成其他进制.
【反馈检测4】若六进制数)6(510k (k 为正整数)化为十进制数为239,则=k .
高中数学常见题型解法归纳及反馈检测第89讲:
四种算法案例参考答案
【反馈检测1答案】13
【反馈检测2答案】51
【反馈检测2详细解析】由更相减损术知
459357102;357102255;255102153;15310251;1025151-=-=-=-=-=,所以最大公约数为51.
【反馈检测3答案】C
【反馈检测3详细解析】34432()123223021f x x x x x x x x =+-+=-+?++ (((23)0)2)1x x x x =-+++
1x =-时,1235v x =-=- ;2105(1)+0=5v v x =+=-?- .故选C .
【反馈检测4答案】3
【反馈检测4详细解析】由题3210
(6)1051606656239k k =?+?+?+?=, 2216239,3k k +==