您好,欢迎访问三七文档
当前位置:首页 > 中学教育 > 高中教育 > 【高中数学必修三】1.3算法案例((公开课同课异构)
§1.3算法案例1、求两个正整数的最大公约数(1)求25和35的最大公约数(2)求49和63的最大公约数2、求8251和6105的最大公约数25(1)5535749(2)77639所以,25和35的最大公约数为5所以,49和63的最大公约数为7辗转相除法(欧几里得算法)观察用辗转相除法求8251和6105的最大公约数的过程第一步用两数中较大的数除以较小的数,求得商和余数8251=6105×1+2146结论:8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。第二步对6105和2146重复第一步的做法6105=2146×2+1813同理6105和2146的最大公约数也是2146和1813的最大公约数。完整的过程8251=6105×1+21466105=2146×2+18132146=1813×1+3331813=333×5+148333=148×2+37148=37×4+0例2用辗转相除法求225和135的最大公约数225=135×1+90135=90×1+4590=45×2显然37是148和37的最大公约数,也就是8251和6105的最大公约数显然45是90和45的最大公约数,也就是225和135的最大公约数思考1:从上面的两个例子可以看出计算的规律是什么?S1:用大数除以小数S2:除数变成被除数,余数变成除数S3:重复S1,直到余数为0辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。8251=6105×1+21466105=2146×2+18132146=1813×1+3331813=333×5+148333=148×2+37148=37×4+0m=n×q+r用程序框图表示出右边的过程r=mMODnm=nn=rr=0?是否《九章算术》——更相减损术算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。第一步:任意给顶两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。解:由于63不是偶数,把98和63以大数减小数,并辗转相减得:98-63=3563-35=2835-28=728-7=2121-7=2114-7=7所以,98和63的最大公约数等于7练习:课本P35练习第1题思考:把更相减损术与辗转相除法比较,你有哪些发现?课堂小结2、两个数21672,8127的最大公约数是()A.2709B.2606C.2703D.2706复习引入:1、求两个数的最大公约数的两种方法分别是()和()。新课讲解:怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢?计算多项式f(x)=x5+x4+x3+x2+x+1当x=5的值的算法:算法1:因为f(x)=x5+x4+x3+x2+x+1所以f(5)=55+54+53+52+5+1=3125+625+125+25+5+1=3906算法2:f(5)=55+54+53+52+5+1=5×(54+53+52+5+1)+1=5×(5×(53+52+5+1)+1)+1=5×(5×(5×(52+5+1)+1)+1)+1=5×(5×(5×(5×(5+1)+1)+1)+1)+1算法1:因为f(x)=x5+x4+x3+x2+x+1所以f(5)=55+54+53+52+5+1=3125+625+125+25+5+1=3906算法2:f(5)=55+54+53+52+5+1=5×(54+53+52+5+1)+1=5×(5×(53+52+5+1)+1)+1=5×(5×(5×(52+5+1)+1)+1)+1=5×(5×(5×(5×(5+1)+1)+1)+1)+1共做了1+2+3+4=10次乘法运算,5次加法运算。共做了4次乘法运算,5次加法运算。《数书九章》——秦九韶算法0111)(axaxaxaxfnnnn设f(x)是一个n次的多项式对该多项式按下面的方式进行改写:0111)(axaxaxaxfnnnn01211)(axaxaxannnn012312))((axaxaxaxannnn0121)))((axaxaxaxannn这是怎样的一种改写方式?最后的结果是什么?0121)))(()(axaxaxaxaxfnnn要求多项式的值,应该先算最内层的一次多项式的值,即11nnaxav然后,由内到外逐层计算一次多项式的值,即212naxvv323naxvv01axvvnn最后的一项是什么?这种将求一个n次多项式f(x)的值转化成求n个一次多项式的值的方法,称为秦九韶算法。通过一次式的反复计算,逐步得出高次多项式的值,对于一个n次多项式,只需做n次乘法和n次加法即可。秦九韶算法的特点:例:已知一个五次多项式为8.07.16.25.325)(2345xxxxxxf用秦九韶算法求这个多项式当x=5的值。解:将多项式变形:8.0)7.1)6.2)5.3)25(((()(xxxxxxf按由里到外的顺序,依此计算一次多项式当x=5时的值:272551v50v5.1385.35272v9.6896.255.1383v2.34517.159.6894v2.172558.052.34515v所以,当x=5时,多项式的值等于17255.2你从中看到了怎样的规律?怎么用程序框图来描述呢?程序框图:开始输入f(x)的系数:0,a1,a2,a3,a4a5输入x0n≤5?输出v结束v=vx0+a5-nn=n+1YNn=1v=a5),,2,1(10nkaxvvavknkkn这是一个在秦九韶算法中反复执行的步骤,因此可用循环结构来实现。另解:(秦九韶算法的另一种直观算法)523.5-2.61.7-0.8X527138.5689.93451.217255.2+多项式的系数多项式的值25135692.53449.51725605(1)算法步骤:第一步:输入多项式次数n、最高次项的系数an和x的值.第二步:将v的值初始化为an,将i的值初始化为n-1.第三步:输入i次项的系数an.第四步:v=vx+ai,i=i-1.第五步:判断i是否大于或等于0,若是,则返回第三步;否则,输出多项式的值v。思考:你能设计程序把“秦九韶算法”表示出来吗?(2)程序框图:输入ai开始输入n,an,xi=0?输出v结束v=vx+aii=i-1YNi=n-1V=an(3)程序:INPUT“n=”;nINPUT“an=“;aINPUT“x=“;xv=ai=n-1WHILEi=0PRINT“i=“;iINPUT“ai=“;av=v*x+ai=i-1WENDPRINTvEND1、已知多项式f(x)=x5+5x4+10x3+10x2+5x+1用秦九韶算法求这个多项式当x=-2时的值。练习:2、已知多项式f(x)=2x4-6x3-5x2+4x-6用秦九韶算法求这个多项式当x=5时的值。课堂小结:1、秦九韶算法的方法和步骤2、秦九韶算法的程序框图一、进位制1、我们了解十进制吗?所谓的十进制,它是如何构成的?十进制由两个部分构成例如:372101231011021071037213其它进位制的数又是如何的呢?第一、它有0、1、2、3、4、5、6、7、8、9十个数字;第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。2、二进制十进制是用0、1、2、3、4、5、6、7、8、9十个数来描述的,二进制是用0、1两个数字来描述的。如11001等(1)二进制的表示方法区分的写法:11001(2)或者(11001)201234(2)212020212111001二、二进制与十进制的转换1、二进制数转化为十进制数例1将二进制数110011(2)化成十进制数解:根据进位制的定义可知012345)2(21212020212111001112116132151所以,110011(2)=51。练习将下面的二进制数化为十进制数?(1)11(2)111(3)1111(4)111112、十进制转换为二进制例2把89化为二进制数522212010余数11224889222201101将上式各步所得的余数从下到上排列,得到:89=1011001(2)练习将下面的十进制数化为二进制数?(1)10(2)20(3)128(4)2562、十进制转换为二进制例2把89化为二进制数解:根据“逢二进一”的原则,有89=2×44+144=2×22+022=2×11+011=2×5+15=2×2+189=2×(2×(2×(2×(2×(2×(2×1+0)+1)+1)+0)+0)+189=1×26+0×25+1×24+1×23+0×22+0×21+1×20结合“秦九韶算法”得:所以:89=1011001(2)例3把89化为五进制数3、十进制转换为其它进制解:根据除k取余法以5作为除数,相应的除法算式为:所以,89=324(5)。895175350423余数INPUTa,k,ni=1b=0t=aMOD10WHILEi=nb=b+t*^(i-1)a=a\10t=aMOD10i=i+1WENDPRINTbEND例题3的程序小结2、掌握二进制与十进制之间的转换1、进位制的概念
本文标题:【高中数学必修三】1.3算法案例((公开课同课异构)
链接地址:https://www.777doc.com/doc-3966444 .html