计算机基础案例解析指导教程案例计算机问题求解算法.pptx
《计算机基础案例解析指导教程案例计算机问题求解算法.pptx》由会员分享,可在线阅读,更多相关《计算机基础案例解析指导教程案例计算机问题求解算法.pptx(142页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 Copyright 2013计算机基础案例解析指导教程计算机基础案例解析指导教程 Copyright 2013计算机基础案例解析指导教程计算机基础案例解析指导教程2案例实践8 计算机问题求解算法l概述概述l算法算法的的发现发现l问题求解的问题求解的艺术艺术l算法的算法的概念概念l算法算法的的表示表示l算法的有效性和算法的有效性和正确性正确性l程序设计程序设计l案例分析与案例分析与求解求解 Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程3计算机问题求解算法概述 我们我们生存在一个信息爆炸的计算机时代,在工作、生活甚至娱生存在一个信息
2、爆炸的计算机时代,在工作、生活甚至娱乐中,我们会遇到很多与信息处理相关的问题,并需要解决各种乐中,我们会遇到很多与信息处理相关的问题,并需要解决各种各样的问题。当我们必须求解一个特定的问题时,首先会问:各样的问题。当我们必须求解一个特定的问题时,首先会问:l这个问题确定是可解的吗?这个问题确定是可解的吗?l解决这个问题有多么困难?解决这个问题有多么困难?l怎样才是最佳的解决方法?怎样才是最佳的解决方法?这时这时就不仅仅是考虑传统的手工处理方式,而应该将计算机就不仅仅是考虑传统的手工处理方式,而应该将计算机的因素考虑其中,因为我们要借助计算机来帮助我们解决问题。的因素考虑其中,因为我们要借助计算
3、机来帮助我们解决问题。于是于是,我们又会好奇地问:计算机是怎样求解问题的?,我们又会好奇地问:计算机是怎样求解问题的?下面下面就让我们在不同类型的案例求解过程中,了解和学习计就让我们在不同类型的案例求解过程中,了解和学习计算机求解问题的思想和方法。算机求解问题的思想和方法。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程4计算机问题求解算法概述 针对具体的问题求解要求,我们需要考虑的问题针对具体的问题求解要求,我们需要考虑的问题很多,诸如:很多,诸如:l常规我们怎么处理这个问题?常规我们怎么处理这个问题?l利用计算机来实现是可行的吗?
4、利用计算机来实现是可行的吗?l需要做哪些规律性的归纳和一致性的整合?需要做哪些规律性的归纳和一致性的整合?l如何发现算法并直观地表示算法?如何发现算法并直观地表示算法?l实现的效率是我们可以接受的吗?实现的效率是我们可以接受的吗?l怎样在人与计算机之间找到一个最佳的契合点?怎样在人与计算机之间找到一个最佳的契合点?l计算机提供的软件工具平台如何使用?计算机提供的软件工具平台如何使用?l语法规则与数据描述有哪些?语法规则与数据描述有哪些?l如何将算法转换为可实现的高级语言程序代码?如何将算法转换为可实现的高级语言程序代码?Copyright Copyright 20201313计算机基础案例解析
5、指计算机基础案例解析指导教程导教程5计算机问题求解算法概述 要要想有效地利用计算机来实现问题的求解和想有效地利用计算机来实现问题的求解和处理,就必须具备计算思维能力和程序设计开发处理,就必须具备计算思维能力和程序设计开发技能。技能。问题问题的分析、归纳、建模和整理算法(粗框的分析、归纳、建模和整理算法(粗框架)的过程属于计算思维范畴;而具体的实现算架)的过程属于计算思维范畴;而具体的实现算法(细化)、数据描述、控制结构、特定计算机法(细化)、数据描述、控制结构、特定计算机高级语言软件环境的工具运用、编码、调试和实高级语言软件环境的工具运用、编码、调试和实现的过程就属于程序设计范畴。现的过程就属
6、于程序设计范畴。Copyright 2013计算机基础案例解析指导教程计算机基础案例解析指导教程6案例实践8 计算机问题求解算法l概述概述l算法算法的的发现发现l问题求解的问题求解的艺术艺术l算法的算法的概念概念l算法的算法的表示表示l算法的有效性和算法的有效性和正确性正确性l程序设计程序设计l案例分析与案例分析与求解求解 Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程7计算机问题求解算法算法的发现l问题求解的技术与学习不仅仅是在计算机科学领域,问题求解的技术与学习不仅仅是在计算机科学领域,而是在任何领域,都是要求永久需要和具备的技
7、能。而是在任何领域,都是要求永久需要和具备的技能。算法发现的过程和一般问题的求解过程之间存在着算法发现的过程和一般问题的求解过程之间存在着紧密的联系,因此在计算机科学领域人们把问题的紧密的联系,因此在计算机科学领域人们把问题的求解简化为一种算法,但并不是所有的问题都一定求解简化为一种算法,但并不是所有的问题都一定都能找到解决问题的算法。都能找到解决问题的算法。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程8计算机问题求解算法算法的发现l程序开发由两个活动组成:发现潜在的算法和以程序的方程序开发由两个活动组成:发现潜在的算法和以程序的
8、方法表示算法。要理解算法是如何发现的就是要理解问题的法表示算法。要理解算法是如何发现的就是要理解问题的求解过程。求解过程。l算法的发现起源于公元前算法的发现起源于公元前30003000年年 公元前公元前15001500年的巴比伦,年的巴比伦,当时巴比伦人求解当时巴比伦人求解“算法算法”的过程:先用解代数方法,再的过程:先用解代数方法,再计算实际数目,最后写上一句短句计算实际数目,最后写上一句短句“这就是一个过程这就是一个过程”。Copyright 2013计算机基础案例解析指导教程计算机基础案例解析指导教程9案例实践10 计算机问题求解算法l概述概述l算法算法的的发现发现l问题求解的问题求解的
9、艺术艺术l算法的算法的概念概念l算法的算法的表示表示l算法的有效性和算法的有效性和正确性正确性l程序设计程序设计l案例分析与案例分析与求解求解 Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程10计算机问题求解算法问题求解的艺术l问题求解的艺术包括四个阶段:问题求解的艺术包括四个阶段:l第一阶段:理解问题;第一阶段:理解问题;l第二阶段:寻找一个可能解决问题的算法过程的思路;第二阶段:寻找一个可能解决问题的算法过程的思路;l第三阶段:阐明算法并且用程序将其表达出来;第三阶段:阐明算法并且用程序将其表达出来;l第四阶段:从准确度及其是否
10、有潜力作为一个解决其他问题第四阶段:从准确度及其是否有潜力作为一个解决其他问题的工具这两方面来评估这个程序。的工具这两方面来评估这个程序。l但这些阶段不是一定要遵循的步骤,也不必一定按顺但这些阶段不是一定要遵循的步骤,也不必一定按顺序完成。序完成。l算法发现是一种富有挑战性的艺术,必须花费时间去算法发现是一种富有挑战性的艺术,必须花费时间去学习学习。Copyright 2013计算机基础案例解析指导教程计算机基础案例解析指导教程11案例实践10 计算机问题求解算法l概述概述l算法算法的的发现发现l问题求解的问题求解的艺术艺术l算法的算法的概念概念l算法的算法的表示表示l算法的有效性和算法的有效
11、性和正确性正确性l程序设计程序设计l案例分析与案例分析与求解求解 Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程12计算机问题求解算法概念l算法的概念算法的概念l算法(算法(AlgorithmAlgorithm)是指解题方案的准确而完整的描述,是一)是指解题方案的准确而完整的描述,是一系列解决问题的方法步骤或清晰指令的陈述。算法存在于人系列解决问题的方法步骤或清晰指令的陈述。算法存在于人们的生活中,如:上街购物、顾客付款、营业员找银等等。们的生活中,如:上街购物、顾客付款、营业员找银等等。l算法代表着用系统的方法描述解决问题的策略机
12、制。也就是算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。算法将不会解决这个问题。l一个算法的优劣可以用一个算法的优劣可以用空间复杂度空间复杂度(是指算法需要消耗的内(是指算法需要消耗的内存空间)与存空间)与时间复杂度时间复杂度(是指执行算法所需要的时间)来衡(是指执行算法所需要的时间)来衡量。不同的算法可能用不同的时间、空间或效率来完成同样量。不同的算法可能用
13、不同的时间、空间或效率来完成同样的任务。的任务。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程13计算机问题求解算法概念l算法要素算法要素l一个算法是由操作与控制结构两个要素组成。一个算法是由操作与控制结构两个要素组成。l操作:计算机最基本的操作有:算术运算、关系操作:计算机最基本的操作有:算术运算、关系运算、逻辑运算和数据传送等。运算、逻辑运算和数据传送等。l控制结构:各操作之间的执行顺序为算法的控制控制结构:各操作之间的执行顺序为算法的控制结构,有:顺序结构、选择结构和循环结构。结构,有:顺序结构、选择结构和循环结构。Copyr
14、ight Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程14计算机问题求解算法概念l算法性质一般归纳为下列五点:算法性质一般归纳为下列五点:l输入:要求若干个信息的输入;输入:要求若干个信息的输入;l有穷性:任意一个算法在执行有限个计算步骤后必有穷性:任意一个算法在执行有限个计算步骤后必须终止;须终止;l可行性:有限个步骤应该可以在一个合理的范围内可行性:有限个步骤应该可以在一个合理的范围内进行;进行;l确定性:每一个计算步骤,必须是精确地定义、无确定性:每一个计算步骤,必须是精确地定义、无二义性;二义性;l输出:有若干个输出信息即处理结果。输出:有若
15、干个输出信息即处理结果。Copyright 2013计算机基础案例解析指导教程计算机基础案例解析指导教程15案例实践10 计算机问题求解算法l概述概述l算法算法的的发现发现l问题求解的问题求解的艺术艺术l算法的算法的概念概念l算法的算法的表示表示l算法的有效性和算法的有效性和正确性正确性l程序设计程序设计l案例分析与案例分析与求解求解 Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程16计算机问题求解算法 算法描述l算法描述算法描述l可以使用多种方法描述算法:自然语言、流程图、可以使用多种方法描述算法:自然语言、流程图、伪代码和计算机
16、语言。伪代码和计算机语言。l例如:分析一天中,根据时间归纳出一个人的日程例如:分析一天中,根据时间归纳出一个人的日程安排情况。下面用了四种方法描述算法。安排情况。下面用了四种方法描述算法。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程17计算机问题求解算法算法描述l自然语言自然语言l用自然语言表达算法,就是把算法的各个步骤,依用自然语言表达算法,就是把算法的各个步骤,依次用人们所熟悉的自然语言表示出来。次用人们所熟悉的自然语言表示出来。l自然语言描述算法的特点是通俗易懂,但缺乏直观自然语言描述算法的特点是通俗易懂,但缺乏直观性和简洁
17、性,且易产生歧义。使用此种方式描述算性和简洁性,且易产生歧义。使用此种方式描述算法,需要注意的事项是:描述要求尽可能精确和详法,需要注意的事项是:描述要求尽可能精确和详尽。尽。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程18计算机问题求解算法算法描述l流程图流程图l流程图是用一些图框、线条以及文字说明来形象地、流程图是用一些图框、线条以及文字说明来形象地、直观地描述算法。直观地描述算法。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程19计算机问题求解算法算法描述l伪代码
18、伪代码l伪代码(伪代码(PseudocodePseudocode)是一种在算法开发过程中非正式)是一种在算法开发过程中非正式地表达思想的符号系统,也是一种算法描述语言,它是地表达思想的符号系统,也是一种算法描述语言,它是通过使用一些介于自然语言与高级语言之间的符号语言通过使用一些介于自然语言与高级语言之间的符号语言表达算法。表达算法。l使用伪代码的目的是为了使被描述的算法可以容易地以使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(任何一种编程语言(Visual BasicVisual Basic、C C或或JavaJava)实现。)实现。l用伪代码描述算法的特点是它介于自然语
19、言与编程语言用伪代码描述算法的特点是它介于自然语言与编程语言之间,结构清晰、代码简单、不拘于具体实现,可读性之间,结构清晰、代码简单、不拘于具体实现,可读性好。好。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程20计算机问题求解算法算法描述运算符号说明符号表示范例赋值符号或=A 5、B=6算术运算符号+、-、/、Mod(整除取余)A+B、A-B、AB、A/B、A Mod B关系运算符号、AB、AB逻辑运算符And(与)、Or(或)、Not(非)Not(AB And A+BA*B Or A0)输入和输出Input、PrintInput
20、 A 、Print B选择结构如果P成立则A否则B:If P Then A Else BIf A=B Then Print A Else B循环结构当型循环结构:While P Do A直到型循环结构:Repeat A Until P或Do A While PCount1;While(Count Y XY 同时同时XZXZ)l至此,在确定问题是可解的(有唯一结果)前提下,至此,在确定问题是可解的(有唯一结果)前提下,找处符合条件的年龄值找处符合条件的年龄值。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程44计算机问题求解算法案例分析
21、与求解案例分析与求解l推算年龄推算年龄l对于对于这个问题,是在逐步推理的过程中,验证线索这个问题,是在逐步推理的过程中,验证线索的充分性,进而发现问题求解的可行性的充分性,进而发现问题求解的可行性。l在在这个方面,人与计算机的问题求解思路有些不同,这个方面,人与计算机的问题求解思路有些不同,比如在具体实现上,人是依靠逻辑推理,找出符合比如在具体实现上,人是依靠逻辑推理,找出符合条件的可能的数,并需要保证答案是唯一的。而计条件的可能的数,并需要保证答案是唯一的。而计算机是通过穷举法,在一个可能的范围,一个个代算机是通过穷举法,在一个可能的范围,一个个代入线索公式中进行逻辑条件判断,如果都满足,就
22、入线索公式中进行逻辑条件判断,如果都满足,就得到最终的结果了,但是这样得到的结果可能有多得到最终的结果了,但是这样得到的结果可能有多种组合种组合。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程45计算机问题求解算法案例分析与求解案例分析与求解l推算年龄推算年龄l如果如果只有线索一,会有很多种可能情况,结果并不只有线索一,会有很多种可能情况,结果并不唯一;加上线索二,结果依然不唯一;再加上线索唯一;加上线索二,结果依然不唯一;再加上线索三之后,结果才明朗。三之后,结果才明朗。l穷举法,也叫枚举法或列举法。在研究对象是由有穷举法,也叫枚
23、举法或列举法。在研究对象是由有限个元素构成的集合时,把所有对象一一列举出来,限个元素构成的集合时,把所有对象一一列举出来,再对其一一进行研究。有时穷举法用于破译密码,再对其一一进行研究。有时穷举法用于破译密码,又又称为称为暴力破解暴力破解法法,即将密码进行各种可能组合逐,即将密码进行各种可能组合逐个推算直到找出真正的密码为止。个推算直到找出真正的密码为止。Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程46计算机问题求解算法案例分析与求解案例分析与求解l百钱买百鸡百钱买百鸡l古代算经中有一个经典的数学算题:要求用一百个铜古代算经中有一
24、个经典的数学算题:要求用一百个铜钱,去买回一百只鸡来。其中:公鸡一只钱,去买回一百只鸡来。其中:公鸡一只5 5钱、母鸡钱、母鸡一只一只3 3钱,小鸡一钱钱,小鸡一钱3 3只。问一百只鸡中公鸡、母鸡、只。问一百只鸡中公鸡、母鸡、小鸡各多少?小鸡各多少?Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导教程47计算机问题求解算法案例分析与求解案例分析与求解l百钱买百百钱买百鸡鸡l设可能的鸡只数为:设可能的鸡只数为:l鸡翁:鸡翁:X X只,鸡母:只,鸡母:Y Y只,鸡雏:只,鸡雏:Z Z只只l线索一:线索一:X+Y+Z=100 X+Y+Z=100
25、(只)(只)l线索二:线索二:5*X+3*Y+Z/3=100 5*X+3*Y+Z/3=100 (钱)(钱)l三个未知数,两个方程,无法求解三个未知数,两个方程,无法求解l但如果将但如果将X X和和Y Y可能的只数逐个枚举(穷举)出来,带可能的只数逐个枚举(穷举)出来,带入上面两个方程,就可以得解:入上面两个方程,就可以得解:lX X可能的只数是:可能的只数是:020020lY Y可能的只数是:可能的只数是:033033lZ Z可能的只数是:可能的只数是:Z=100-X-YZ=100-X-Y Copyright Copyright 20201313计算机基础案例解析指计算机基础案例解析指导教程导
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 基础 案例 解析 指导 教程 问题 求解 算法
限制150内