高中数学人教版必修三:1.3算法案例ppt课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
v0 5
v1 55 2 27
你从中看到了怎
v2 27 5 3.5 138 .5
v3 138 .5 5 2.6 689 .9
样的规律?怎么 用程序框图来描
述呢?
v4 689.95 1.7 3451 .2
例2 已知一个五次多项式为
f (x) 5x5 2x4 3.5x3 2.6x2 1.7x 0.8
用秦九韶算法求这个多项式当x = 5的值。 解: 将多项式变形:
f (x) ((((5x 2)x 3.5)x 2.6)x 1.7)x 0.8
按由里到外的顺序,依此计算一次多项式当x = 5时的值:
PRINT m End
333=148×2+37
148=37×4+0
《九章算术》——更相减损术
算理:可半者半之,不可半者,副置分母、子之数,以少 减多,更相减损,求其等也,以等数约之。
第一步:任意给定两个正整数;判断他们是否都是偶数。 若是,则用2约简;若不是,则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数 比较,并以大数减小数。继续这个操作,直到所得的减数和差 相等为止,则这个等数或这个等数与约简的数的乘积就是所求 的最大公约数。
333=148×2+37
148=37×4+0
显然37是148和37的最大公约 数,也就是8251和6105的最 大公约数
思考1:从上面的两个例子可以看出计 算的规律是什么?
S1:用大数除以小数 S2:除数变成被除数,余数变成除数 S3:重复S1,直到余数为0
辗转相除法是一个反复执行直到余数等于0停止的步骤,
对该多项式按下面的方式进行改写:
f (x) an xn an1xn1 a1x a0
(an xn1 an1xn2 a1)x a0
((an xn2 an1xn3 a2 )x a1)x a0
( (an x an1)x an2 )x a1)x a0
f (x) ( (an x an1)x an2 )x a1)x a0
算法案例
(第一课时)
1、求两个正整数的最大公约数
(1)求25和35的最大公约数 (2)求225和135的最大公约数
(1) 5 25 35 57
所以,25和35的最大公约数为5
所以,225和135的最大公约数为45
2、求8251和6105的最大公约数
辗转相除法(欧几里得算法)
观察用辗转相除法求8251和6105的最大公约数的过程
f(5)=55+54+53+52+5+1
=(( ((5 +1 ) × 5 +1 ) ×5 +1 ) × 5+1 ) ×5 +1
《数书九章》——秦九韶算法
设 f (x) 是一个n次的多项式
f (x) an xn an1xn1 a1x a0
对该多项式按下面的方式进行改写:
f (x) an xn an1xn1 a1x a0
第一步 用两数中较大的数除以较小的数,求得商和余数 8251=6105×1+2146
结论: 8251和6105的公约数就是6105和2146的公约数,求 8251和6105的最大公约数,只要求出6105和2146的公约数 就可以了。
第二步 对6105和2146重复第一步的做法 6105=2146×2+1813 同理6105和2146的最大公约数也是2146和1813的最大 公约数。
(an xn1 an1xn2 a1)x a0 ((an xn2 an1xn3 a2 )x a1)x a0
( (an x an1)x an2 )x a1)x a0
这样改写的目的是什么?
简化计算的次数(尤其是乘法的次数)。
设 f (x) 是一个n次的多项式
f (x) an xn an1xn1 a1x a0
例3 用更相减损术求 225 与 135 的最大公约数
解:由于两数不是偶数,把225和135以大数减小数, 并辗转相减 225-135=90 135-90=45 90-45=45
所以,225和135的最大公约数等于45
《九章算术》——更相减损术的算法程序语句:
INPUT a,b WHILE a<>b
要求多项式的值,应该先算最内层的一次多项式的值,即
v0 an
vk vk 1x ank
v1 an x an1
然后,由内到外逐层计算一次多项式的值,即
v2 v1x an2 v3 v2 x an3
vn vn1x a0
最后的一项 是什么?
这种将求一个n次多项式f(x)的值转化成求n个 一次多项式的值的方法,称为秦九韶算法。
完整的过程
例2 用辗转相除法求225和135的最大公约数
8251=6105×1+21ቤተ መጻሕፍቲ ባይዱ6
225=135×1+90
6105=2146×2+1813
135=90×1+45
2146=1813×1+333 1813=333×5+148
90=45×2
显然45是90和45的最大公约数,也就是 225和135的最大公约数
算法1:f(x) =x5+x4+x3+x2+x+1
=x ×x×x×x ×x + x × x×x ×x + x × x × x
+x×x+x+1
所以f(5)=55+54+53+52+5+1
=3125+625+125+25+5+1= 3906
算法2:
f(x) =x5+x4+x3+x2+x+1
=((((x+1)x+1)x+1)x+1)x+1
IF a>b THEN a=a-b
ELSE b=b-a
END IF WEND
PRINT a END
练习: 用辗转相除法求 294 与84的最大公约数,再 用更相减损术验证。
思考:求三个数:168,54,264的最大公约数。
算法案例
(第二课时)
计算多项式f(x) =x5+x4+x3+x2+ x+1当x = 5的值
这实际上是一个循环结构。
m=n×q+r
用程序框图表示出右边的过程
8251=6105×1+2146
r=m MOD n m=n n=r
r=0?
否
是
INPUT m , n DO
6105=2146×2+1813
r=m mod n m=n
2146=1813×1+333
n=r LOOP UNTIL r=0 1813=333×5+148