1.3算法案例
秦九韶算法
(
)一、三维目标
(
)(a)知识与技能
(
)了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
(
)(b)过程与方法
(
)模仿秦九韶计算方法,体会古人计算构思的巧妙。
(
)(c)情态与价值观
(
)通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。充分认识信息技术对数学的促进。
(
)
二、教学重难点
(
)重点:1.秦九韶算法的特点
(
)难点:1.秦九韶算法的先进性理解
(
)三、教学设计
(
)(一)创设情景,揭示课题
(
)1.辗转相除法和更相减损术,是求两个正整数的最大公约数的优秀算法,我们将算法转化为程序后,就可以由计算机来执行运算,实现了古代数学与现代信息技术的完美结合.
(
)2.对于求n次多项式的值,在我国古代数学中有一个优秀算法,即秦九韶算法,我们将对这个算法作些了解和探究.
(
)(二)研探新知
(
)思考1
21325
(
)算法1:需要(5+4+3+2)=14次乘法,5次加法
(
)算法2:需要5次乘法,5次加法
秦九韶算法
(
)思考2
18556
思考3:利用后一种算法求多项式f(x)=anxn+an-1xn-1+…+a1x+a0的值,这个多项式应写成哪种形式?
f(x)=anxn+an-1xn-1+…+a1x+a0=(anxn-1+an-1xn-2+…+a2x+a1)x+a0
=((anxn-2+an-1xn-3+…+a2)x+a1)x+a0=…
=(…((anx+an-1)x+an-2)x+…+a1)x+a0.
思考4:对于f(x)=(…((anx+an-1)x+an-2)x+…+a1)x+a0,由内向外逐层计算一次多项式的值,其算法步骤如何?
第一步,计算v1=anx+an-1.
第二步,计算v2=v1x+an-2.
第三步,计算v3=v2x+an-3.
…
第n步,计算vn=vn-1x+a0.
思考5:上述求多项式f(x)=anxn+an-1xn-1+…+a1x+a0的值的方法称为秦九韶算法,利用该算法求f(x0)的值,一共需要多少次乘法运算,多少次加法运算?
思考6:在秦九韶算法中,记v0=an,那么第k步的算式是什么?
vk=vk-1x+an-k
(k=1,2,…,n)
例1
阅读下列程序,说明它解决的实际问题是什么?
求多项式,在x=a时的值.
评价一个算法好坏的一个重要标志是运算的次数,如果一个算法从理论上需要超出计算机允许范围内的运算次数,那么这样的算法就只能是一个理论算法.在多项式求值的各种算法中,秦九韶算法是一个优秀算法.
作业:《习案》作业九1.3算法案例
课题
更相减损术与辗转相除法
授课时间
课型
新授
教学目标
知识与技能
1.理解算法案例的算法步骤和程序框图.
过程与方法
2.引导学生得出自己设计的算法程序.
情感态度价值观
3.体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.
教材分析
重难点
教学重点:引导学生得出自己设计的算法步骤、程序框图和算法程序.教学难点:体会算法的基本思想,提高逻辑思维能力,发展有条理地思考与数学表达能力.
教学设想
教法
引导探究
学法
自学探究
教具
多媒体
课堂设计
目标展示前面我们学习了算法步骤、程序框图和算法语句.今天我们将通过辗转相除法与更相减损术来进一步体会算法的思想.预习检测1)怎样用短除法求最大公约数?(2)怎样用穷举法(也叫枚举法)求最大公约数?(3)怎样用辗转相除法求最大公约数?(4)怎样用更相减损术求最大公约数?质疑探究用辗转相除法求8
251与6
105的最大公约数,写出算法分析,画出程序框图,写出算法程序.精讲点拨例2
用更相减损术求98与63的最大公约数.当堂检测
1
已知n次多项式Pn(x)=a0xn+a1xn-1+…+an-1x+an,如果在一种算法中,计算(k=2,3,4,…,n)的值需要k-1次乘法,计算P3(x0)的值共需要9次运算(6次乘法,3次加法),那么计算P10(x0)的值共需要__________次运算.下面给出一种减少运算次数的算法:P0(x)=a0,Pk+1(x)=xPk(x)+ak+1(k=0,1,2,…,n-1).利用该算法,计算P3(x0)的值共需要6次运算,计算P10(x0)的值共需要___________次运算.2
已知多项式函数f(x)=2x5-5x4-4x3+3x2-6x+7,求当x=5时的函数的值.作业布置教材
48
页
1,2,
3
题
板书设计
一
更相减损术与辗转相除法
三
结论
二
例题
1,2
四
小结
教学反思1.3算法案例
(
)一、三维目标
(
)(a)知识与技能
(
)1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析。
(
)2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。
(
)(b)过程与方法
(
)在辗转相除法与更相减损术求最大公约数的学习过程中对比我们常见的约分求公因式的方法,比较它们在算法上的区别,并从程序的学习中体会数学的严谨,领会数学算法计算机处理的结合方式,初步掌握把数学算法转化成计算机语言的一般步骤。
(
)(c)情态与价值观
(
)1.通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。
(
)2.在学习古代数学家解决数学问题的方法的过程中培养严谨的逻辑思维能力,在利用算法解决数学问题的过程中培养理性的精神和动手实践的能力。
(
)
二、教学重难点
(
)重点:理解辗转相除法与更相减损术求最大公约数的方法。
(
)难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言。
(
)三、教学设计
(
)(一)创设情景,揭示课题
(
)1.教师首先提出问题:在初中,我们已经学过求最大公约数的知识,你能求出18与30的公约数吗?
(
)2.接着教师进一步提出问题,我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数?比如求8251与6105的最大公约数?这就是我们这一堂课所要探讨的内容。
(
)(二)研探新知
(
)1.辗转相除法
(
)例1
求两个正数8251和6105的最大公约数。
(
)解:8251=6105×1+2146
(
)显然8251的最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数。
(
)6105=2146×2+1813
2146=1813×1+333
(
)1813=333×5+148
333=148×2+37
(
)148=37×4+0
(
)则37为8251与6105的最大公约数。
(
)以上我们求最大公约数的方法就是辗转相除法。也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。利用辗转相除法求最大公约数的步骤如下:
(
)第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;
(
)第二步:若r0=0,则n为m,n的最大公约数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;
(
)第三步:若r1=0,则r1为m,n的最大公约数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;
……
依次计算直至rn=0,此时所得到的rn-1即为所求的最大公约数。
(1)辗转相除法的程序框图及程序
程序框图:(略)
程序:(当循环结构)
直到型结构见书37面。
INPUT
“m=”;m
INPUT
“n=”;n
IF
mTHEN
x=m
m=n
n=x
END
IF
r=m
MOD
n
WHILE
r<>0
r=m
MOD
n
m=n
n=r
WEND
PRINT
m
END
练习:利用辗转相除法求两数4081与20723的最大公约数(答案:53)
2.更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术。
更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母·子之数,以少减多,更相减损,求其等也,以等数约之。
翻译出来为:
第一步:任意给出两个正数;判断它们是否都是偶数。若是,用2约简;若不是,执行第二步。
第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。
例2
用更相减损术求98与63的最大公约数.
解:由于63不是偶数,把98和63以大数减小数,并辗转相减,即:98-63=35
63-35=28
35-28=7
28-7=21
21-7=14
14-7=7
所以,98与63的最大公约数是7。
练习:用更相减损术求两个正数84与72的最大公约数。(答案:12)
3.比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到
5.课堂练习
一.用辗转相除法求下列各组数的最大公约数,并在自己编写的BASIC程序中验证。
(1)225;135
(2)98;196
(3)72;168
(4)153;119
6.小结:
辗转相除法与更相减损术求最大公约数的计算方法及完整算法程序的编写。1.3进位制
(
)教学要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换;学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律.
(
)教学重点:各种进位制之间的互化.
(
)教学难点:除k取余法的理解以及各进位制之间转换的程序框图及其程序的设计.
(
)教学过程:
(
)知识探究(一):进位制的概念
(
)思考1:进位制是为了计数和运算方便而约定的记数系统,如逢十进一,就是十进制;每七天为一周,就是七进制;每十二个月为一年,就是十二进制,每六十秒为一分钟,每六十分钟为一个小时,就是六十进制;等等.一般地,“满k进一”就是k进制,其中k称为k进制的基数.那么k是一个什么范围内的数?
(
)思考2:十进制使用0~9十个数字,那么二进制、五进制、七进制分别使用哪些数字?
(
)思考3:在十进制中10表示十,在二进制中
(
)10表示2.一般地,若k是一个大于1的整数,则以k为基数的k进制数可以表示为一串数
(
)字连写在一起的形式:anan-1…a1a0(k).其中各个数位上的数字an,an-1,…,a1,a0的取值范围如何?
(
)
思考4:十进制数4528表示的数可以写成4×103+5×102+2×101+8×100,依此类
(
)比,二进制数110011(2),八进制数7342(8)分别可以写成什么式子?
(
)110011(2)=1×25+1×24+0×23+0×22+1×21+1×20
(
)7342(8)=7×83+3×82+4×81+2×80.
(
)思考5:一般地,如何将k进制数anan-1…a1a0(k)写成各数位上的数字与基数k的幂的乘积之和的形式?
(
)
(
)思考6:在二进制中,0+0,0+1,1+0,1+1的值分别是多少?
(
)知识探究(二):k进制化十进制的算法
(
)思考1:二进制数110011(2)化为十进制数是什么数?
(
)110011(2)=1×25+1×24+0×23+0×22+1×21+1×20
=32+16+2+1=51.
(
)思考2:二进制数右数第i位数字ai化为十进制数是什么数?
例1
将下列各进制数化为十进制数.
(1)10303(4)
;
(2)1234(5).
10303(4)=1×44+3×42+3×40=307.
1234(5)=1×53+2×52+3×51+4×50=194.
知识探究(三):除k取余法
思考1:二进制数101101(2)化为十进制数是什么数?十进制数89化为二进制数是什么数?
思考2:上述化十进制数为二进制数的算法叫做除2取余法,转化过程有些复杂,观察下面的算式你有什么发现吗?
思考3:上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法,那么十进制数191化为五进制数是什么数?
191=1231(5)
例2
将十进制数458分别转化为四进制数和六进制数.
458=13022(4)=2042(6)
例3
将五进制数30241(5)转化为七进制数.
30241(5)=3×54+2×52+4×5+1=1946.
30241(5)=5450(7)
例4
已知10b1(2)=a02(3),求数字a,b的值.
10b1(2)=1×23+b×2+1=2b+9.
a02(3)=a×32+2=9a+2.
所以2b+9=9a+2,即9a-2b=7.
故a=1,b=1.
小结作业
1.利用除k取余法,可以把任何一个十进制数化为k进制数,并且操作简单、实用.
2.通过k进制数与十进制数的转化,我们也可以将一个k进制数转化为另一个不同基数的k进制数.
作业:习案、学案
十1.3
算法案例
进位制
教学目标:1了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
2学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律。
教学重点:各进位制表示数的方法及各进位制之间的转换
教学难点:除k取余法的理解以及各进位制之间转换的程序框图及其程序的设计
学法:学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k取余法。
教学过程
引入:我们常见的数字都是十进制的,比如一般的数值计算,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的称是十六进制的,计算一打数值时是12进制的......那么什么是进位制 不同的进位制之间又又什么联系呢
进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。对于任何一个数,我们可以用不同的进位制来表示。比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的。
一般地,若k是一个大于一的整数,那么以k为基数的k进制可以表示为:
,
而表示各种进位制数一般在数字右下脚加注来表示,如111001(2)表示二进制数,34(5)表示5进制数
如:把二进制数110011(2)化为十进制数.
110011=1
25+1
24+0
23+0
22+1
21+1
20=32+16+2+1=51
把八进制数化为十进制数.
例4、把二进制数110011(2)化为十进制数.
解:110011=1
25+1
24+0
23+0
22+1
21+1
20=32+16+2+1=51
例5
把89化为二进制数.
解:根据二进制数满二进一的原则,可以用2连续去除89或所得商,然后去余数.
具体的计算方法如下:
89=2
44+1
44=2
22+0
22=2
11+0
11=2
5+1
5=2
2+1
所以:89=2
(2
(2
(2
(2
2+1)+1)+0)+0)+1=1
26+0
25+1
24+1
23+0
22+0
21+1
20=1011001(2)
这种算法叫做除2取余法,还可以用下面的除法算式表示:
把上式中的各步所得的余数从下到上排列即可得到89=1011001(2)
上述方法也可以推广为把十进制化为k进制数的算法,这种算法成为除k取余法.
例6
利用除k取余法把89转换为5进制数
具体的计算方法如把十进制数化为二进制数。
把k进制数a(共有n位)转换为十进制数b的过程可以利用计算机程序来实现,语句为:
INPUT
a,k,n
i=1
b=0
WHILE
i<=n
t=GET
a[i]
b=b+t
k︿(i-1)
i=i+1
WEND
PRINT
b
END
小结:
(1)进位制的概念及表示方法(2)十进制与二进制之间转换的方法及程序
(3)
图形计算器进一步激发学生在算法方面的潜能,更能体现他们的创造精神。