【课件】新课标人教A版数学必修3:1.3算法案例(一)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
秦九韶算法
把一个n次多项式f(x)=anxn+an-1xn-1+…+a1x+a0 改写成如下形式:
f x
a xn n
a xn1 n 1
ax 1
a 0
a x n1 n
a xn2 n 1
a 1
x a0
a xn2 n
a xn3 n 1
a2
x a1
x a0
aΒιβλιοθήκη Baidu
n
x
a
n 1
x
a
n2
x
a 1
程序: INPUT “m,n=”;m,n DO r=m MOD n m=n n=r LOOP UNTIL r=0 PRINT m END
更相减损术
同理:a,b,c为正整数,若a-b=c,则(a,b)=(b,c)。
“更相减损术”(也是求两个正整数的最大公约数的算法) 步骤:
第一步:任意给定两个正整数;判断他们是否都是偶数。 若是,则用2约简;若不是则执行第二步。
想一想,如何求8251与6105的最大公约数?
辗转相除法
例1、求8251和6105的最大公约数。
解:a a 8251=6105×1+2146 6105=2146 ×2+1813 2146=1813 ×1+333 1813=333 ×5+148 333=148 ×2+37 148=37 ×4
(8251,6105) =(6105,2146) =(2146,1813) =(1813,333) =(333,148) =(148,37)
输出a×2i
DO IF b>a THEN
t=a a=b b=t END IF a=a-b LOOP UNTIL a=b PRINT a*2^i END
结束
案例2、秦九韶算法
秦九韶算法是求一元多项式的值的一种方法。
怎样求多项式f(x)=x5+x4+x3+x2+x+1当x=5时的值呢? 算法一:把5代入,计算各项的值,然后把它们加起来。
开始 输入a,b
i=0
程序:
INPUT “a,b”;a,b i=0 WHILE a MOD 2=0 AND b MOD 2=0
a=a/2 b=b/2 i=i+1 WEND
i=i+1
Y
a MOD 2=0且b MOD 2=0?
a=a/2,b=b/2
N
b>a?
Y
N
t=a,a=b,b=t
a=a-b
N a=b? Y
输 入 n , an , x 的 值
v=an
i=n-1
INPUT “an=”;a INPUT “x=”;x v=a i=n-1
i=i-1 WHILE i>=0
v=vx+ai INPUT “ai=”;b
i≥0? 否
输入ai 是
v=v*x+b i=i-1 WEND
输出v
PRINT v
结束
END
作业: P48 习题1.3 A组第1题
63-35=28
=(35,28)
35-28=7
=(28,7)
28-7=21 21-7=14 14-7=7
=(21,7)
=(14,7)
=(7,7) = 7
所以,98和63的最大公约数等于7。
练习:用更相减损术求下列两数的最大公约数:
(1)(225,135) 45 (2)(98,196) 98 (3)(72,168) 24 (4)(153,119) 17
画出框图并编写程序。
作业:
1(1)1239=
(7);
(2)213(4)=
(3);
(3)1010111(2)=
(4)。
1.求 1 1 1 1 的值,画出框图并编写程序。
1 2 23 3 4
20 21
2.求 1 1 1 1 的值,画出框图并编写程序。
1 2 23 3 4
n (n 1)
4.给出某班50名学生的数学测试成绩,60 分及60分以上的为及格,要求统计及格人数、 及格人数的平均分、全班同学的平均分,
得:18和24最大公约数是:2×3=6
短除法
求以下几组正整数的最大公约数。
(注:若整数m和n满足n整除m,则(m,n)=n。用(m,n)来表示
m和n的最大公约数。)
(1)(18,30) 6; (3)(63,63) 63;
(2)(24,16) 8; (4)(72,8) 8;
(5)(301,133 ) 7;
=37
定理: 已知m,n,r为正整数,若m=nq+r(0≤r<n) (即r=m MOD n),则(m,n)=(n,r)。
练习:用辗转相除法求下列两数的最大公约数: (1)(225,135) 45 (2)(98,196) 98 (3)(72,168) 24 (4)(153,119) 17
辗转相除法是一个反复执行直到余数等于0停止的步骤, 这实际上是一个循环结构
一位美国的幼儿园老师为了教育孩子火海逃生,引导学生做了一个非 非常有趣的游戏──“火海逃生”。老师将许多乒乓球放进瓶子,只露出 系着的棉线。花瓶代表大楼,细细的瓶颈是惟一的出口,七只乒乓球则 是楼里的居民,要求当大楼突然起火时,全体居民能在短时间里安全逃 离。七名学生兴奋地上场了,他们各执一根棉线,报警器一响,都以最 快的反应拉扯绳子,可一个“人”也没能脱离火海,原来,七只乒乓球都 卡在了瓶口。又开始了第二次实验?
第二步:以较大的数减较小的数,接着把所得的差与较 小的数比较,并以大数减小数。继续这个操作,直到所 得的减数和差相等为止,则这个等数就是所求的最大公 约数。
例、用更相减损术求98与63的最大公约数 (自己按照步骤求解)
解:由于63不是偶数,把98和63以大数减小数,并辗转相减。
98-63=35
(98,63) =(63,35)
辗转相除法求两个数的最大公约数,其算法可以描述如下: ① 输入两个正整数m和n(m>n); ② 计算m除以n,得余数r; ③更新被除数和除数:m=n,n=r。 ④判断余数r是否为0:若余数为0则输出结果m,否则转返回 第②步继续执行。
开始 输入m,n
r=m MOD n
m=n
n=r N
r=0? Y
输出m 结束
第k步: vk=vk-1x+an-k
设计一个五次多项式的秦 九韶程序框图:
开始
输入f(x)的系数: a0,a1,a2,a3,a4a5
输入x
n=1 v=a5
n<=5? N
输出v
结束
n=n+1
v=vx+a5-n
Y
求一个n次多项式的秦九韶算法 该程序框图对应的程序:
程序框图:
开始
INPUT “n=”;n
共做了1+2+3+4=10次乘法运算,5次加法运算。
算法二:秦九韶算法
共做了4次乘法运算,5次加法运算。
例1、已知一个5次多项式为 f(x)=4x5+2x4+3.5x3-2.6x2+1.7x-0.8 用秦九韶算法求这个多项式当x=5时的值。
练习、已知多项式 f(x)=x5+5x4+10x3+5x+1 用秦九韶算法求这个多项式当x=-2时的值。
x
a
0
第一步:计算最内层anx+an-1的值,将anx+an-1的 值赋给一个变量v1(为方便将an赋给变量v0); 第二步:计算(anx+an-1)x+an-2的值,可以改写 为v1x+an-2,将v1x+an-2的值赋给一个变量v2; 依次类推,即每一步的计算之后都赋予一个新值 vk,即从最内层的括号到最外层的括号的值依次 赋予变量v1,v2,…,vn.第n步所求值vn=vn-1x+a0 即为所求多项式的值。
这几个学生面面相觑,只见其中一个小声跟同伴们商量了几句,这
回大家没有各顾各地拉绳子,而是由左到右依次地拉。果然,报警
器的尾音还没结束,七位“居民”已离开了出口,转移到了安全地带。
运筹帷幄,决胜千里
算法案例之求最大公约数
例、求18与24的最大公约数:
解:2 1 8 2 4 用公有质因数2除, 3 9 1 2 用公有质因数3除, 3 4 3和4互质不除了。