高中数学人教A版必修三 1.3 算法案例 课件 (共37张PPT)

文档属性

名称 高中数学人教A版必修三 1.3 算法案例 课件 (共37张PPT)
格式 zip
文件大小 586.7KB
资源类型 教案
版本资源 人教新课标A版
科目 数学
更新时间 2017-05-17 13:09:59

图片预览

文档简介

课件37张PPT。§1.3 算法案例第一章 算法初步算法案例(第一课时)复习1.研究一个实际问题的算法,主要从哪几方面展开?2.在程序框图中算法的基本逻辑结构有哪几种?3.在程序设计中基本的算法语句有哪几种?算法步骤、程序框图和编写程序三方面展开.顺序结构、条件结构、循环结构输入语句、输出语句、赋值语句、条件语句、循环语句 韩信是秦末汉初的著名军事家.据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么方法,不要逐个报数,就能知道场上的士兵的人数,韩信先令士兵排成3列纵队,结果有2人多余,接着下令排成5列纵队,结果又多出3人,随后他又下令改为7列纵队,这次又剩下2人无法成整行.在场的人都哈哈大笑,以为韩信不能清点出准确的人数,不料笑声刚落,韩信高声报告共有士兵2333人.众人听了一楞,不知道韩信用什么方法这么快就能得到正确的结果的.今天,我们将以这些古典案例的思想,设计出适宜计算机的运行程序,提高我们对基本算法结构和算法语句在实际中的运用能力.情境创设探究一:辗转相除法思考一:在小学里我们是如何救出两个正整数的最大公约数的?算法案例之求最大公约数解:2 18  24 用公有质因数2除
     
  3  9  12 用公有质因数3除
     3   4  3和4互质,不除了
得:18和24的最大公约数:2x3=6短除法例:求18与24的最大公约数想一想,如何求8251与6105的最大公约数? 思考2:对于8251与6105这两个数,它们的最大公约数是多少?你是怎样得到的? 由于它们公有的质因数较大,利用上述方法求最大公约数就比较困难.有没有其它的方法可以较简单的找出它们的最大公约数呢?思考3:注意到8251=6105×1+2146,那么8251与6105这两个数的公约数和6105与2146的公约数有什么关系? 我们发现6105=2146×2+1813,同理,6105与2146的公约数和2146与1813的公约数相等.思考4:重复上述操作,你能得到8251与6105这两个数的最大公约数吗?2146=1813×1+333,148=37×4+0.8251=6105×1+2146,6105=2146×2+1813,定义:
所谓的辗转相除法,就是对于给定的两个数, 用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的数对,继续上面的除法, 直到大数被小数除尽,则这是较小的数就是原来两个数的最大公约数例1 观察用辗转相除法求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+2146 6105=2146×2+1813 2146=1813×1+3331813=333×5+148333=148×2+37148=37×4+0显然37是148和37的最大公约数,也就是8251和6105的最大公约数 例2 用辗转相除法求225和135的最大公约数显然45是90和45的最大公约数,也就是225和135的最大公约数 135=90×1+4590=45×2思考1:从上面的两个例子可以看出计算的规律是什么? S1:用大数除以小数S2:除数变成被除数,余数变成除数S3:重复S1,直到余数为0 思考2:辗转相除法中的关键步骤是哪种逻辑结构? 辗转相除法中的关键步骤是哪种逻辑结构?辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。m = n × q + r用程序框图表示出右边的过程r=m MOD nm = nn = rr=0?是否《九章算术》——更相减损术 算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。第一步:任意给顶两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。例3 用更相减损术求98与63的最大公约数解:由于63不是偶数,把98和63以大数减小数,并辗转相减得: 98-63=35 63-35=28 35-28=7 28-7=21
21-7=21
14-7=7所以,98和63的最大公约数等于7 思考:把更相减损术与辗转相除法比较,你有哪些发现?辗转相除法与更相减损术的算理相似, 有异曲同工之妙 主要区别:辗转相除法进项的是除法运算, 即辗转相除.而更相减损术进行的是减法运算,即辗转相减, 但实质都是一个不断的递归过程。算法案例(第二课时)1、求两个数的最大公约数的两种方法分别是( )和( ) .
2、两个数21672,8127
的最大公约数是( )
A.2709 B.2606
C.2703 D.2706复习引入:新课讲解:案例2:
秦九韶
算法 例1 计算多项式f(x) =x5+x4+x3+x2+x+1当x = 5的值因为f(x) =x5+x4+x3+x2+x+1所以
f(5)=55+54+53+52+5+1算法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对该多项式按下面的方式进行改写:要求多项式的值,应该先算最内层的一次多项式的值,即然后,由内到外逐层计算一次多项式的值,即这种将求一个n次多项式f(x)的值转化成求n个一次多项
式的值的方法,称为秦九韶算法。例2 已知一个五次多项式为用秦九韶算法求这个多项式当x = 5的值。解:将多项式变形:按由里到外的顺序,依此计算一次多项式当x = 5时的值:所以,当x = 5时,多项式的值等于17255.2你从中看到了怎样的规律?怎么用程序框图来描述呢?开始输入f (x)的系数:
a0、a1、a2、a3、a4、a5输入x0n=0v=a5v= v·x0+a5-nn=n+1n < 5?输出v结束否是 通过一次式的反复计算,逐步得出高次多项式的值,对于一个n次多项式,只需做n次乘法和n次加法即可。 秦九韶算法的特点:1、已知多项式f(x)=x5+5x4+10x3+10x2+5x+1
用秦九韶算法求这个多项式当x=-2时的值。练习:2、已知多项式f(x)=2x4-6x3-5x2+4x-6
用秦九韶算法求这个多项式当x=5时的值。课堂小结:
1、秦九韶算法的方法和步骤
2、秦九韶算法的程序框图算法案例(第三课时)一、进位制1、什么是进位制?2、最常见的进位制是什么? 除此之外还有哪些常见的进位制? 请举例说明.进位制是人们为了计数和运算方便而约定的记数系统。1、我们了解十进制吗?所谓的十进制,它是如何构成的?十进制由两个部分构成例如:3721其它进位制的数又是如何的呢?第一、它有0、1、2、3、4、5、6、7、8、9十个数字;第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。(用10个数字来记数,称基数为10)表示有:1个1,2个十, 7个百即7个10的平方,
3个千即3个10的立方2、 二进制十进制是用0、1、2、3、4、5、6、7、8、9十个数来描述的,二进制是用0、1两个数字来描述的。如11001等(1)二进制的表示方法区分的写法:11001(2)或者(11001)2二、二进制与十进制的转换1、二进制数转化为十进制数例1 将二进制数110011(2)化成十进制数解:根据进位制的定义可知所以,110011(2)=51。练习将下面的二进制数化为十进制数?(1)11(2)111(3)1111(4)111112、十进制转换为二进制(除2取余法:用2连续去除89或所得的商,然后取余数)例2 把89化为二进制数根据“逢二进一”的原则,有 89=2×44+1= 2× (2×22+0)+1 = 2×( 2×( 2×11+0)+0)+1 = 2× (2× (2× (2× 5+1)+0)+0)+15= 2× 2+1=2×(2×(2×(2×(22+1)+1)+0)+0)+189=1×26+0×25+1×24+1×23+0×22+0×21+1×20所以:89=1011001(2)=2×(2×(2×(23+2+1)+0)+0)+1=2×(2×(24+22+2+0)+0)+1=2×(25+23+22+0+0)+1=26+24+23+0+0+2189=2×44+144= 2×22+022= 2×11+011= 2× 5+1 = 2× (2× (2× (2× (2× 2+1)+1)+0)+0)+1所以89=2×(2×(2×(2×(2 × 2 +1)+1)+0)+0)+12、十进制转换为二进制(除2取余法:用2连续去除89或所得的商,然后取余数)余数10011012222222521011224889注意:
1.最后一步商为0,
2.将上式各步所得的余数从下到上排列,得到:89=1011001(2)练习将下面的十进制数化为二进制数?(1)10(2)20(3)128(4)2562、十进制转换为其它进制例4 把89化为五进制数解:根据除k取余法以5作为除数,相应的除法算式为:所以,89=324(5)。将k进制数a转换为十进制数(共有 n位)的程序a=anan-1… a3a2a1(k) =ank(n-1)+an-1k(n-2)+ … + a3k2 +a2k1+a1k0b=a1k0b=a2k1 +bb=a3k2 + b…b=ankn-1 +bai=GET a[i]
GET函数用于取出a的右数第i位数INPUT a,k,ni=1b=0WHILE i<=nWENDPRINT bENDi=i+1i=1t=GET a[i]b=t*k^(i-1)+bi=i+1小结2、掌握二进制与十进制之间的转换1、进位制的概念