- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章算法初步
1.1算法与程序图框
算法的含义:在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定 可以得到结果的解决问题的程序。比如解方程的算法、函数求值的算法、作图的算法,
例子:
例1任意给定一个大于1的整数n,试设计一个程序或步骤对 n是否为质数1做出判定。 算法分析:根据质数的定义,很容易设计出下面的步骤:
第一步:判断n是否等于2,若n=2,则n是质数;若n2,则执行第二步。
第二步:依次从2至(n-1 )检验是不是n的因数,即整除n的数,若有这样的数,则 n不是质数;若没有这样的数,则 n是质数。
这是判断一个大于1的整数n是否为质数的最基本算法。
例2用二分法设计一个求议程 x2 - 2=0的近似根的算法。
算法分析:回顾二分法解方程的过程,并假设所求近似根与准确解的差的绝对值不超
过0.005,则不难设计出以下步骤:
2
第一步:令 f(x)=x - 2。因为 f(1)0 , f(2)0,所以设 X1=1, X2=2。
第二步:令m=(X1+X2)/2,判断f(m)是否为0,若则,贝U m为所长;若否,则继续判断 f(x 1)? f(m)大于0还是小于0。
第三步:若f(x 1) ? f(m)0,则令X1=m 否则,令 X2=m
第四步:判断|x 1 - X2|0.005是否成立?若是,则 X1、X2之间的任意取值均为满足条件的近 似根;若否,则返回第二步。
例3 写出解二元一次方程组 的算法
2x+y=1 ②
解:第一步,②-①X 2得5y=3 :③
第二步,解③得y=3/5 ;
第三步,将y=3/5代入①,得x=1/5
学生做一做:对于一般的二元一次方程组来说,上述步骤应该怎样进一步完善?
老师评一评:本题的算法是由加减消元法求解的,这个算法也适合一般的二元一次方
Ax 十 By +G = 0
程组的解法。下面写出求方程组 」 仃 1 (AB2-EAH0)的解的算法:
2的另一个算法:Ax + Bzy+C2 =0
2的另一个算法:
第一步:②X A1-①X A,得(A1B2-A2B1)y+AdA2C1=0;③
第二步:
解③,得y二;
Ai B2 — A? B
第三步:
将 A?。- A2C2 B2C1 B1C2
将y 代入①,得x =
A1B^ - A2B1 AB2 - A2Bi
此时我们得到了二元一次方程组的求解公式,禾U用此公司可得到倒
第一步:取 A=1, B1=-2 , C=1, A2=2, B2=1, C2=-1 ;
第二步:计算 x BQ BlC2 与 y 二 A2Ci - g
A|B2 - A Bi AB2 — A2B1
第三步:输出运算结果。
可见利用上述算法,更加有利于上机执行与操作。
基础知识应用题
例4写出一个求有限整数列中的最大值的算法。
解:算法如下。
先假定序列中的第一个整数为“最大值” 。
将序列中的下一个整数值与“最大值”比较,如果它大于此“最大值” ,这时你
就假定“最大值”是这个整数。
如果序列中还有其他整数,重复 S2。
在序列中一直到没有可比的数为止,这时假定的“最大值”就是这个序列中的 最大值。
学生做一做 写出对任意3个整数a,b,c求出最大值的算法。
老师评一评 在例2中我们是用自然语言来描述算法的,下面我们用数学语言来描述
本题的算法。
max=a
如果 bmax,贝U max=b.
如果 Cmax,贝U max=c.
max就是a,b,c中的最大值。
综合应用题
例5写出求1+2+3+4+5+6的一个算法。
分析:可以按逐一相加的程序进行, 也可以利用公式1+2+…+n = n(n 1)进行,也可以
2
根据加法运算律简化运算过程。
解:算法1:
S1 :计算1+2得到3;
3与3
3与3相加得到6;
6与4相加得到10;
10与5相加得到15;
15与6相加得到21。
S3:将第二步中的运算结果
S4:将第三步中的运算结果
S5:将第四步中的运算结果
算法2:
S1:取 n=6;
S2:计算 ;
2
S3:输出运算结果。
算法3:
S1:将原式变形为(1+6)+(2+5)+(3+4)=3 X 7;
S2:计算 3X 7;
S3:输出运算结果。
小结:算法1是最原始的方法,最为繁琐,步骤较多,当加数较大时,比如 1+2+3+…
+10000,再用这种方法是行不通的; 算法2与算法3都是比较简单的算法, 但比较而言,算 法2最为简单,且易于在计算机上执行操作。
学生做一做 求1X 3X 5X 7X 9X 11的值,写出其算法。 老师评一评 算法1;第一步,先求1X 3,得到结果3; 第二步,将第一步所得结果 3再乘以5,得到结果15;
第三步,再将15乘以7,得到结果105;
第四步,再将105乘以9,得到945;
第五步,再将945乘
原创力文档


文档评论(0)