- 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) 兔子永远不死;
(2) 兔子出生后,两个月(即从它生命中的第三个月开始)达到性成熟;
(3) 兔子总是雌雄成对出生。每个月月初,每对性成熟的兔子正好生
一对小兔;
(4) 计算第n个月的兔子数rabbit(n)。
问题抽象 :是指从众多的事物中抽取出共同的,本质性的特征,
而舍弃其非本质的特征。
兔子问题的抽象:
• 第1个月兔子数目为1对,表示为rabbit(1)=1;
• 第2个月兔子数目为1对,表示为rabbit(2)=1;
• 第3个月兔子数目为2对,表示为rabbit(3)=2;
• 第4个月兔子数目为3对,表示为rabbit(4)=3;
• …
• 问题是:第n个月的兔子数为多少,即rabbit(n)=?
数学建模 :就是用数学符号、数学式子、框图等对实际问题本质
属性的刻画。
兔子问题的数学建模:
兔子繁殖问题是一个著名的斐波那契数列:即从第3项开始,每一
项都等于其前两项之和。求这个数列的第n项,可构建数学模型:
F(1)=1; F(2)=1 ;
F(3)=F(1)+F(2)
…
F(n)=F(n-2)+F(n-1)
算法设计实现:就是根据数学建模的结果,设计
出计算机可执行的算法,实现问题求解。
兔子问题的算法实现:
根据斐波那契数列的特点,我们可以设计一个递推算法,
实现第n个月兔子数的计算。程序流程图如右图所示。当输
入n为7时,计算出的兔子数为13。
今天我们介绍了问题求解的一般过程,其中问题抽
象和数学建模是算法设计的基础,只有合理抽象、科
学建模才能设计出高效的算法,后续章节我们将重点
介绍算法的设计和实现。
7
•算法的概念
•算法的基本特性
•算法的描述
•算法 (Algorithm )是指解决某一问题的方法和步骤。
大到宇宙飞船升空,小到一盘菜的制作都要按照一定的
顺序来操作,这个操作步骤就可以理解为算法。
•在计算机科学中,算法是指利用计算机解决问题的一系
列清晰指令的集合。
① 有穷性:一个算法必须在执行有穷步之后结束。
② 确定性:算法的每一步骤都必须是确切定义的。
③ 输入:一个算法有0个、1个或多个输入。
④ 输出:一个算法必须有1个或多个输出值。
⑤ 可行性:算法的每一步操作都应该是可执行的。
• 自然语言 :人们日常使用的语言。
•伪代码: 是用介于自然语言和计算机语言之间的文字和符
号来描述算法。
•流程图:是一种描述算法的常用工具,它采用美国国家标
准化协会(ANSI)规定的一组图形符号来表示算法。
常用的流程图符号
起止框 判断框 输入输出框
处理框 流程线 连接点 注释框
例 题
例1 :求任意3个正整数a、b、c中的最大者。
用自然语言描述:
第一步:输入3个正整数 a ,b ,c。
第二步:若a大于b ,则将a放到max中,否则将b
放到max中。
第三步:若c大于max ,则将c放到max中。
第四步:输出max。
用流程图描述 :
用伪代码描述:
read a, b, c
if ab
a→max
else
b→max
if cmax
c→max
print max
今天我们介绍了算法的概念,算法的基本特征和算法
的描述方法。请大家着重掌握算法的描述方法。
文档评论(0)