计算机科学导论(第4版)电子课件-第5章 算法与复杂性

合集下载

计算机科学导论-概述 ppt课件

计算机科学导论-概述  ppt课件

程序(存储在存储器中)
输入 8,12,22,3
输3,出8,12,22
冯•诺依曼模型(John Von Neumann1903-1957)
现代计算机都是基于冯•诺依曼模型
1. 4个子系统 2. 程序存储 3. 指令顺序执行
计算机硬件 计算机软件
12
计算机概述——计算机系统分层结构
通信
程序
网络,多台计算机联接在一起,实现信息交换和资 源共享
2
《计算机科学导论》教材
教材 《计算机科学导论》 机械工业出版社 刘艺等译 参考书:
➢ 计算机科学导论,王玲,宋斌编著,清华大学出版社, 2008
➢ 计算机科学导论(第2版),瞿中 等编著,清华大学 出版社, 2007
➢ 计算机科学导论(第7版)(影印版),布鲁克希尔 著,清华大学出版社 ,2004
第10讲:数据库
(第14章)
第11讲:人工智能与计算理论 (第17,18章)
学习建议
内容多,用系统的思想学习,掌握基本概念、 基本原理、基本操作;
听讲与自学相结合,可以快速浏览几本书,有 针对性的上网查阅或图书查阅;
多上机,多实践,提高动手能力
本讲内容
1.1.计算机系统分层结构 1.2.计算机的发展历史 1.3.计算机的分类 1.4.计算机应用
计算机科学导论
第一讲 概述
课程简介
《计算机科学导论》是计算机类各专业全程教学内容的导 引课程,介绍计算机硬件、软件、数据组织和计算理论等方面的 内容,包括编码及计算机体系结构的基本原理、操作系统、计算 机网络、算法、程序设计语言、数据结构和数据库、人工智能以 及计算理论等专业知识的知识点以及与信息技术有关的社会人文 等知识,力求使学生对计算机科学有比较全面的了解。与此同时, 使读者对后续课程的学习有一个概括的了解,为今后的学习打下 良好的基础。

计算机科学导论电子教案课堂PPT

计算机科学导论电子教案课堂PPT

对计算机科学者来说,除去数据的输入与输出,更关
心数据处理系统中的数据处理过程。因为包括数据的输入 与输出在内的整个数据处理都是计算机科学研究的对象。
美籍匈牙利数学家冯•诺伊曼(Von Neumann)于1945年 奠定了现代计算机科学的基本理论。
现代计算机的特点是具有速度快精度高、逻辑判断与
记忆功能的、高度的自动化与灵活性。
如:整数-25的Excess-127数据表示为01100110
D-25+D127=D102=B1100110=B01100110
.
27
浮点数表示法
浮点数可以扩大数的表示范围。
浮点数由两部分组成,一部分用以表示数
据的有效位,称为尾数;一部分用于表示该数 的小数点位置,称为阶码。
一般阶码用整数表示,尾数大多用小数表
零的表示有两种:
正零为0.0…0,负零为1.1…1。
.
26
Excess系统
特点:能同时存储正负数,易于二与十进制数转换。 正数(幻数)用于转换过程,在8位模式下幻数为 (2 n-1)=128 或(2 n-1)-1=127,并分别称 Excess-128与Excess-127。
Excess系统数据表示法(数据转换法):将十进 制整数与幻数之和转换为二进制数,并补足N位。
4.第四代计算机(1974年至今)
其主要特征是以大规模和超大规模集成电路为计算机
的主要功能部件。
----------------- 注:与教材所讲有不同
.
10
第二章 数据的表示
• 数据的类型 • 计算机内部的数据 • 表示数据 • 十六进制表示法 • 八进制表示法
.
11
数据的类型
计算机能处理的数据分类为:

计算机科学导论(第4版)习题答案-第5、6章

计算机科学导论(第4版)习题答案-第5、6章

第5章算法与复杂性习题一、选择题1. B2. D3. C4. A5. B6. B7. D8.B9.C 10.A11.A 12.C 13.A 14.A二、简答题1.什么是算法,算法的特性有哪些?答:“算法(Algorithm)是一组明确的、可以执行的步骤的有序集合,它在有限的时间内终止并产生结果”。

算法的特性有:(1) 有穷性(可终止性):一个算法必须在有限个操作步骤内以及合理的有限时间内执行完成。

(2) 确定性:算法中的每一个操作步骤都必须有明确的含义,不允许存在二义性。

(3) 有效性(可执行性):算法中描述的操作步骤都是可执行的,并能最终得到确定的结果。

(4) 输入及输出:一个算法应该有零个或多个输入数据、有1个或多个输出数据。

2.什么是算法的时间复杂度和空间复杂度,如何表示?答:时间复杂度是与求解问题规模、算法输入相关的函数,该函数表示算法运行所花费的时间。

记为,T(n),其中,n代表求解问题的规模。

算法的空间复杂度(Space complexity)度量算法的空间复杂性、即执行算法的程序在计算机中运行所占用空间的大小。

简单讲,空间复杂度也是与求解问题规模、算法输入相关的函数。

记为,S(n),其中,n代表求解问题的规模。

时间复杂度和空间复杂度同样,引入符号“O”来表示T(n)、S(n)与求解问题规模n之间的数量级关系。

3.用图示法表示语言处理的过程。

答:语言处理的过程如图所示:4.简述算法设计的策略。

答:作为实现计算机程序实现时解决问题的方法,算法研究的内容是解决问题的方法,而不是计算机程序的本身。

一个优秀的算法可以运行在比较慢的计算机上,但一个劣质的算法在一台性能很强的计算机上也不一定能满足应用的需要,因此,在计算机程序设计中,算法设计往往处于核心地位。

要想充分理解算法并有效地应用于实际问题,关键是对算法的分析。

通常可以利用实验对比分析、数学方法来分析算法。

实验对比分析很简单,两个算法相互比较,它们都能解决同一问题,在相同环境下,一般就会认为哪个算法的速度快这个算法性能更好。

计算机科学导论学习课件教学课件PPT

计算机科学导论学习课件教学课件PPT
机器
-6-
1、数据处理器
在讨论图灵模型之前,将计算机定义为数据处理器
计算机是一个接收输入数据、处理数据并产生输出数据 的黑盒
该模型过于宽泛,按照该模型定义,计算器也可以算做 一种计算机
-7-
2、可编程数据处理器
图灵模型是一种适用于通用计算机的模型
该模型增加了额外的元素:程序 程序是用来告诉计算机对数据进行处理的指令集合 输出数据依赖于两方面因素,即输入数据和程序
-32-
6、操作系统
在程序设计过程中,有一些指令序列对所有程序都 是公用的、通用的。
早期的操作系统是为程序访问计算机部件提供方便 的一种通用管理程序。
现代操作系统已经成为管理计算机软硬件及资源的 系统软件。(第7章讨论)
-33-
本章内容安排
图灵模型 冯.诺伊曼模型 计算机组成 历史 社会问题和道德问题 计算机科学
-18-
2、存储程序的概念
冯.诺依曼模型要求程序必须存储在存储器中,早 期的计算机只将数据存储在存储器中,执行程序通 过操作开关或改变配线完成。
现代计算机的存储器主要用来存储程序和数据。程 序和数据都以二进制(0和1的序列)模式存储在存储 器中。
-19-
3、指令的顺序执行
冯.诺依曼模型中的一段程序是由一组数量有限的 指令组成
控制单元从内存中提取指令、解释指令、执行指令;指 令按照顺序执行
一条指令可能会请求跳转到前面或后面的某个地方去执 行,跳转后仍然会顺序执行。
-20-
本章内容安排
图灵模型 冯.诺伊曼模型 计算机组成 历史 社会问题和道德问题 计算机科学
-21-
计算机组成
计算机系统由3大部分构成
计算机硬件 数据 计算机软件

计算机科学与程序设计导论PPT第5章算法和程序设计语言final

计算机科学与程序设计导论PPT第5章算法和程序设计语言final
折半查找key值(伪代码描述)
1 ikey←0;high←9;low←0 2 while low<high do
mid←(low+high)/2 if key=A[mid] return mid else if key>A[mid] low←mid+1 else if key<A[mid] high←mid-1
– 适合数据处理 – 函数式语言预定义一系列可供任何程
序员调用的原子函数 – 允许程序员通过若干原子函数的组合
创建新的函数
三种主要程序设计模式对比
• 对比
– 面向过程 • 根据业务逻辑从上到下写代码,使用场合包括单片机、嵌入式开发等
– 面向对象 • 将数据与函数绑定在一起,进行封装,这样能够更快速的开发程序,减少了重复代 码的重写过程
– 函数式 • 将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可,函数式更加 注重的是执行结果而非执行的过程
共同概念
• 共同概念
– 几乎每种编程语言(高级程序设计语言)都相同的内容 • 标识符 • 数据类型 • 语句 • 函数
共同概念
• 标识符
– 只用来标识某个实体的一个符号 – 变量、函数名、类名、对象名等 – 具有一定的命名规则 – 不能是语言关键字
基本算法:选择排序
• 选择排序
– 案例:对序列A进行从小到大排序,A={92,67,52,56,11,85,15,39,55,82}
对A选择排序(伪代码描述)
1
st←0; en←9; imax←0
2
for i←en to st do
imax =i
for j←st to i do
if A[imax]>A[i] imax←j

计算机科学导论

计算机科学导论

计算机计算机科学科学科学导论导论第5章 计算机程序设计本章导读:本章主要介绍程序设计基础知识、程序设计的一般过程和程序设计语言,重点介绍了面向过程程序设计、面向对象程序设计和可视化程序设计的特点,并结合C 、C++、Java 、VB 等语言介绍这些程序设计方法的具体应用。

本章主要知识点:程序设计基础知识面向过程程序设计的特点及其应用 面向对象程序设计的特点其应用 可视化程序设计的特点其应用计算机计算机科学科学科学导论导论5.1 概述5.1.1 程序设计基础5.1.2 程序设计的一般过程5.1.3 程序设计语言5.1.4 程序设计发展概况计算机计算机科学科学科学导论导论5.1.1 程序设计基础计算机之所以能自动连续地进行工作,最根本的原因就在于“存储程序”和“程序控制”。

“存储程序”——就是把计算机处理问题的步骤用计算机能够识别的指令编写出来,并送入计算机内部的存储器存储起来。

“程序控制”——就是把事先存储好的程序从存储器取出来,送入CPU执行,计算机才能按照人的意图自动完成指定的工作。

因此,程序就是为解决某一问题而编写的语句集合,是将一个实际问题的具体操作用某种程序设计语言描述出来的指令序列。

编写程序的过程就是程序设计。

程序设计语言就是计算机能够理解和执行的特殊语言。

计算机计算机科学科学科学导论导论5.1.2 程序设计的一般过程概括地说,程序设计就是分析问题、编写程序、调试程序的过程。

用计算机解决实际问题的基本过程如下图所示。

程序设计步骤如下:(1)分析要解决的问题,明确任务(2)分析问题,建立数学模型,并选择合适的解决方案 (3)确定数据结构和算法:数据结构 + 算法 = 程序(4)编写程序 (5)调试程序(6)整理资料,交付使用分析问题确定解决方案确定具体算法编写程序调试程序整理文档计算机计算机科学科学科学导论导论5.1.3 程序设计语言2. 汇编语言汇编语言是一种用助记符来表示各个基本操作的程序设计语言。

计算机算法基础(第五章)PPT教学课件

计算机算法基础(第五章)PPT教学课件

if VISITED(w)=0 then //w未被检测//
call ADDQ(w,Q) //ADDQ将w加入到队列Q的末端//
VISITED(w)←1 //同时标示w已被访问//
endif
repeat
段:LCHILD, DATA,RCHILD//
if T≠0 then call VISIT(T) call PREORDER(LCHILD(T)) call PREORDER(RCHILD(T))
endif end PREORDER
2020/12/11
4
⑵后根次序周游 算法5.2 后根次序周游的递归表示 procedure POSTORDER(T) //T是一棵二元树。T的每个结点有三个信息
2020/12/11
6
注:
一棵二元树可由中根遍历序列+先根遍历序列、或 中根遍历序列+后根遍历序列唯一确定。但不能由先 根遍历序列+后根遍历序列唯一确定。
如已知一棵二元树的中根遍历次序是:
DGBEAFHC
先根遍历次序是:ABDGECFH
A
则这棵二元树唯一确定如下:
B
C
D
E
F
2020/12/11
G
H
② 访问邻接于v且尚未被访问的所有结点——这些结 点是新的未被检测的结点。将这些结点依次放置到一未检 测结点表(队列Q)中(末端插入) 。
③ 标记v已被检测。
④ 若未检测结点表为空,则算法终止;否则
⑤ 从未检测结点表的表头取一结点作为下一个待检
2020/12/11
11
测结点,
算法5.6 宽度优先检索算法
其中,t(0)≤c1。 归纳法证明t(n)≤c2n+c1,其中c2是一使得c2≥2c1的常数。 1)当n=0时,成立

《计算机科学导论课件》

《计算机科学导论课件》

编程与算法
学习编程语言和算法设计,提升解决复杂问题的能 力。
人机交互与用户体验
研究如何设计用户友好的界面和交互体验,提升人 机互动效果。
计算机科学的历史
年代 1936 1971 1990 2004
里程碑 图灵机提出,标志着计算机科学的开始。 发明第一台微处理器,开启了个人计算机时代。 万维网诞生,互联网得以普及。 诞生了Facebook,社交媒体的兴起。
计算机科学的基础知识
1 二进制
计算机使用的数字系统,了解其原理对理解计算机工作方式至关重要。
2 逻辑电路
了解计算机内部的电路以及逻辑门的工作原理。
3 操作系统
学习操作系统的功能和作用,了解计算机的基本操作。
4 编程语言
掌握编程语言的基本概念和语法,能够编写简单的程序。
计算机硬件和软件架构
计算机硬件
掌握常见的排序和搜索算法,提高程序的效 率。
计算机网络和通信技术
计算机网络
学习网络基础知识,如TCP/IP协 议、局域网、广域网等。
网络安全
了解网络安全的重要性和常见的 网络攻击方式,学习保护网络的 方法。
通信技术
掌握无线通信和移动通信的原理 和技术,了解通信协议和网络传 输。
人工智能和机器学习
包括中央处理器、内存、硬盘等各 种硬件组件。
软件架构
设计软件的结构和组织方式,实现 程序的功能和目标。
电路板
控制计算机硬件的电路,使其能够 正常工作。
数据结构和算法
1
数据结构
学习数据的存储方式和组织结构,如数组、
算法复杂性
2
链表和树等。
分析算法的时间和空间复杂性,选择合适的
算法解决问题。

计算机科学导论课本答案(完整版)

计算机科学导论课本答案(完整版)

第1章概述习题(答案)一.选择题1. D2. B3. CD4. C5. ABC6. A7. B8. B9. ABCD 10. ABCDE二.简答题1.什么是计算机系统?计算机系统是一种能够按照事先存储的程序,自动、高速地对数据进行输入、处理、输出和存储的系统,由计算机硬件系统和计算机软件系统两大部分组成。

2.请解释冯•诺依曼所提出的“存储程序”概念。

把程序和数据都以二进制的形式统一存放在存储器中,由机器自动执行。

不同的程序解决不同的问题,实现了计算机通用计算的功能。

3.控制器的主要功能是什么?控制器基本功能就是从内存中取出指令和执行指令,即控制器按程序计数器指出的指令地址从内存中取出该指令进行译码,然后根据该指令功能向有关部件发出控制命令,执行该指令。

另外,控制器在工作过程中,还要接受各部件反馈回来的信息。

4.简述CPU和主机的概念。

通常把运算器、控制器做在一个大规模集成电路块上称为中央处理器,又称CPU(Central Processing Unit)。

通常把内存储器、运算器和控制器合称为计算机主机,也可以说主机是由CPU与内存储器组成的,而主机以外的装置称为外部设备,外部设备包括输入/输出设备,外存储器等。

5.什么是计算机软件?计算机软件的分类有哪些?软件是指用来指挥计算机运行的各种程序的总和以及开发、使用和维护这些程序所需的技术文档。

计算机软件系统分为系统软件和应用软件。

计算机系统软件由操作系统、语言处理系统、以及各种软件工具等组成,指挥、控制计算机硬件系统按照预定的程序运行、工作,从而达到预定的目标。

应用软件是用户利用计算机软、硬件资源为解决各类应用问题而编写的软件,包括用户程序及其说明性文件资料。

6.计算机有哪些主要的特点?(1)运算速度快、精度高计算机的字长越长,其精度越高,现在世界上最快的计算机每秒可以运算几十万亿次以上。

一般计算机可以有十几位甚至几十位(二进制)有效数字,计算精度可由千分之几到百万分之几,是任何计算工具所望尘莫及的。

计算机科学导论.ppt

计算机科学导论.ppt

2019-7-10
24
谢谢欣赏
人工智能倒逼学习方式转变
2019-7-10
25
谢谢欣赏
人工智能 VS 人类大脑
在训练模式上,应试教育的刷题训练与人工智能 的大数据训练具有高度相似性:
刷题训练:用大量的题目训练学生的大脑 大数据训练:用大量数据训练一个深度神经网络
人工智能相比人类大脑的优势:
办公室电话:63601013 邮箱:ylxu@
2019-7-10
2
谢谢欣赏
课程简介
教学目标:
了解计算机专业要学什么、专业的起源与发展、 将来能从事什么职业
熟悉计算机的使用
学时:20 学分:1 课程类型:考查
2019-7-10
3
谢谢欣赏
教材
《计算机科学引论》(Computing Essentials) (2017英文精编版),机械工业出版社
23
谢谢欣赏
三大科学思维
推动人类文明进步和科技发展的三大科学:
理论科学,实验科学,计算科学
与三大科学相对应的是三大科学思维:
理论思维:又称推理思维,以推理和演绎为特 征,以数学学科为代表
实验思维:又称实证思维,以观察和总结自然 规律为特征,以物理学科为代表
计算思维:又称构造思维,以设计和构造为特 征,以计算机学科为代表
大型IT公司都会在程序设计题中考察应聘者的数学思维 能力
2019-7-10
20
谢谢欣赏
数学在计算机科学中的应用
计算机三维动画:几何学,分形理论和技术 游戏、图形软件:线性代数(坐标变换、矩阵运算等) 数据挖掘:线性代数,统计学,多元微积分,泛函分

计算机科学导论(第4版)习题答案-第1、2章

计算机科学导论(第4版)习题答案-第1、2章

第1章概述习题(答案)一.选择题1. D2.C3.D4.B5.A6. B7. CD8.C9.A 10. ABC11.A 12.C 13.B 14.B 15. A16.A 17.C 18.A 19. ABC 20.B21.ABCD 22.C 23. ABCDE二.简答题1.举例说明石子计数的过程早上放10头牛出去,就拿10颗小石子表示,晚上牛回来清数时,就以小石子的数量来逐个进行清点,看看是否一致。

2.简述计算机的发展阶段计算机的出现是20世纪最辉煌的成就之一,按照采用的电子器件划分,计算机大致经历了四个阶段。

1. 第一代计算机(1946—1957)其主要特征是逻辑器件使用了电子管,用穿孔卡片机作为数据和指令的输入设备,用磁鼓或磁带作为外存储器,使用机器语言编程。

第一台计算机需要工作在有空调的房间里,如果希望它处理什么事情,需要把线路重新连接接,把成千上万的线重新焊接。

1949年发明了可以存储程序的计算机,这些计算机使用机器语言编程,可存储信息和自动处理信息,存储和处理信息的方法开始发生革命性的变化。

第一代计算机体积大、运算速度低、存储容量小、可靠性低。

几乎没有什么软件配置,主要用于科学计算。

尽管如此,第一代计算机却奠定了计算机的技术基础,如二进制、自动计算及程序设计等,对以后计算机的发展产生了深远的影响。

其代表机型有:ENIAC、IBM650(小型机)、IBM709(大型机)等。

2. 第二代计算机(1958—1964)其主要特征是使用晶体管代替了电子管,内存储器采用了磁芯体,引入了变址寄存器和浮点运算部件,利用I/O处理机提高了输入输出能力。

这不仅使得计算机的体积缩小了很多,同时增加了机器的稳定性并提高了运算速度,而且计算机的功耗减小,价格降低。

在软件方面配置了子程序库和批处理管理程序,并且推出了Fortran、COBOL、ALGOL等高级程序设计语言及相应的编译程序,降低了程序设计的复杂性。

除应用于科学计算外,它还开始应用在数据处理和工业控制等方面。

计算机科学导论(第4版)习题答案-第5、6章

计算机科学导论(第4版)习题答案-第5、6章

第5章算法与复杂性习题一、选择题1. B2. D3. C4. A5. B6. B7. D8.B9.C 10.A11.A 12.C 13.A 14.A二、简答题1.什么是算法,算法的特性有哪些?答:“算法(Algorithm)是一组明确的、可以执行的步骤的有序集合,它在有限的时间内终止并产生结果”。

算法的特性有:(1) 有穷性(可终止性):一个算法必须在有限个操作步骤内以及合理的有限时间内执行完成。

(2) 确定性:算法中的每一个操作步骤都必须有明确的含义,不允许存在二义性。

(3) 有效性(可执行性):算法中描述的操作步骤都是可执行的,并能最终得到确定的结果。

(4) 输入及输出:一个算法应该有零个或多个输入数据、有1个或多个输出数据。

2.什么是算法的时间复杂度和空间复杂度,如何表示?答:时间复杂度是与求解问题规模、算法输入相关的函数,该函数表示算法运行所花费的时间。

记为,T(n),其中,n代表求解问题的规模。

算法的空间复杂度(Space complexity)度量算法的空间复杂性、即执行算法的程序在计算机中运行所占用空间的大小。

简单讲,空间复杂度也是与求解问题规模、算法输入相关的函数。

记为,S(n),其中,n代表求解问题的规模。

时间复杂度和空间复杂度同样,引入符号“O”来表示T(n)、S(n)与求解问题规模n之间的数量级关系。

3.用图示法表示语言处理的过程。

答:语言处理的过程如图所示:4.简述算法设计的策略。

答:作为实现计算机程序实现时解决问题的方法,算法研究的内容是解决问题的方法,而不是计算机程序的本身。

一个优秀的算法可以运行在比较慢的计算机上,但一个劣质的算法在一台性能很强的计算机上也不一定能满足应用的需要,因此,在计算机程序设计中,算法设计往往处于核心地位。

要想充分理解算法并有效地应用于实际问题,关键是对算法的分析。

通常可以利用实验对比分析、数学方法来分析算法。

实验对比分析很简单,两个算法相互比较,它们都能解决同一问题,在相同环境下,一般就会认为哪个算法的速度快这个算法性能更好。

全套课件 计算机导论(第四版)--王岳斌

全套课件 计算机导论(第四版)--王岳斌
图灵奖偏重于计算机科学理论、算法、语言和软件 开发方面。由于图灵奖对获奖条件要求极高,从 1966年到2003年的38届图灵奖,共计有47名科学家 获此殊荣,其中美国学者最多。
2000年图灵奖得主为华裔科学家姚期智(安德鲁姚,Andrew Yao),现被聘为清华大学计算机系讲 席教授.
著名计算机奖项
月IBM发布第一台PC,由于IBM-PC,IBM
商标开始进入家庭、学校、中小企业。
Intel和微软的霸业在此基础上萌芽。
1985年,IBM投资的科研项目催生了4位
诺贝尔奖获得者。
著名计算机团体与公司
英特尔(Intel)公司成立于1968年,是世 界上最大的CPU及相关芯片制造商。80%左右 的计算机都是使用Intel公司生产的CPU。 1971年,英特尔推出了全球第一个微处理器 4004。 1993年英特尔推出了高性能微处理器 Pentium,中文名为“奔腾”;因为用80586 数字作为下一代芯片编号,不能作为注册商 标 , 启 用 拉 丁 文 Pentium( 有 “ 五 ” 之 意 ) 表示第五代产品。
著名计算机团体与公司
AMD:世界第二大CPU制造商. Epson:爱普生,日本爱普生打印机制造商。 HP:是美国著名的惠普打印机、电脑制造商。 Canon:佳能,日本著名的佳能打印机制造商。 Compaq:康柏,是世界上最大的电脑公司之一,现
已与HP合并。 Apple:,美国苹果电脑公司,该公司以生产高性
程序设计语言(PL); 人机交互(HC);
图形学可视化计算(GV); 智能系统(IS);
信息管理(IM);
软件工程(SE);
数值计算科学(CN); 社会和职业问题(SP)。
14.著名计算机人物
阿伦·图灵Alan Turing,1912.6~1954.6, 计算机科学之父,英国数学家。 1936年, 图灵发表了一篇著名的论文《论可计算数及 其在判定问题中的应用》,论文中提出了一 种十分简单但运算能力极强的理想计算装置, 这一装置是一种理想的计算模型,这种计算 机模型奠定了计算机组成部件、工作方式和 顺序,被称为图灵机,图灵的这一思想奠定 了整个现代计算机的理论基础。

计算机科学导论(第4版)习题答案-第1、2章

计算机科学导论(第4版)习题答案-第1、2章

第1章概述习题(答案)一.选择题1. D2.C3.D4.B5.A6. B7. CD8.C9.A 10. ABC11.A 12.C 13.B 14.B 15. A16.A 17.C 18.A 19. ABC 20.B21.ABCD 22.C 23. ABCDE二.简答题1.举例说明石子计数的过程早上放10头牛出去,就拿10颗小石子表示,晚上牛回来清数时,就以小石子的数量来逐个进行清点,看看是否一致。

2.简述计算机的发展阶段计算机的出现是20世纪最辉煌的成就之一,按照采用的电子器件划分,计算机大致经历了四个阶段。

1. 第一代计算机(1946—1957)其主要特征是逻辑器件使用了电子管,用穿孔卡片机作为数据和指令的输入设备,用磁鼓或磁带作为外存储器,使用机器语言编程。

第一台计算机需要工作在有空调的房间里,如果希望它处理什么事情,需要把线路重新连接接,把成千上万的线重新焊接。

1949年发明了可以存储程序的计算机,这些计算机使用机器语言编程,可存储信息和自动处理信息,存储和处理信息的方法开始发生革命性的变化。

第一代计算机体积大、运算速度低、存储容量小、可靠性低。

几乎没有什么软件配置,主要用于科学计算。

尽管如此,第一代计算机却奠定了计算机的技术基础,如二进制、自动计算及程序设计等,对以后计算机的发展产生了深远的影响。

其代表机型有:ENIAC、IBM650(小型机)、IBM709(大型机)等。

2. 第二代计算机(1958—1964)其主要特征是使用晶体管代替了电子管,内存储器采用了磁芯体,引入了变址寄存器和浮点运算部件,利用I/O处理机提高了输入输出能力。

这不仅使得计算机的体积缩小了很多,同时增加了机器的稳定性并提高了运算速度,而且计算机的功耗减小,价格降低。

在软件方面配置了子程序库和批处理管理程序,并且推出了Fortran、COBOL、ALGOL等高级程序设计语言及相应的编译程序,降低了程序设计的复杂性。

除应用于科学计算外,它还开始应用在数据处理和工业控制等方面。

计算机算法设计与分析第4版

计算机算法设计与分析第4版

算法(Algorithm)
现代谜题
有4个人打算过桥,它们都在桥的某一端。我们有17分 钟让他们全部到达大桥的另一头。时间是晚上,他们 只有一只手电筒。最多只能有两个人同时过桥,而且 必须携带手电筒。必须步行将手电筒带来带去,不能 扔来扔去。每个人走路的速度是不同的:甲过桥需要1 分钟,乙要2分钟,丙要5分钟,丁要10分钟。两个人 一起走的速度等于其中较慢的人的速度。请给出过桥 的方案。
算法设计与分析的步骤
算法理论正确,但设计出的算法并不正确
例1:已知A=1012 B=-1012 C=1,计算A+B+C的值
计算方法有两个:A+B+C=1
A+C+B=0
出现上述情况原因:使用工具只能表示七位,即计算机的 精度问题
算法设计与分析的步骤
例2:求解方程x2-(1015+1)*x+1015=0的根
4.

简单性
含义:算法简单,程序结构简单。 好处:

容易验证正确性 便于程序调试

简单的算法效率不一定高。要在保证一定效率的 前提下力求得到简单的算法。
分析算法的基本原则
5. 最优性

含义:指求解某类问题中效率最高的算法 两种最优性(设A是解某个问题的算法)

最坏情况:如果在解这个问题的算法类中没有其它算法在最 坏情况下的时间复杂性比A在最坏情况下的时间复杂性低, 则称A是解这个问题在最坏情况下的最优算法。 平均情况:如果在解这个问题的算法类中没有其它算法在平 均情况下的时间复杂性比A在平均情况下的时间复杂性低, 则称A是解这个问题在平均情况下的最优算法。
算法设计与分析的步骤
3.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贪婪算法
假设顾客希望找回总额为16的硬币。同时假设银行发行的 硬币面额是分别为1、5和10,那么按照贪婪算法,首先应 该选取一枚面额为10的硬币,然后选择1枚面额为5的硬币, 最后选择1枚面额为1的硬币。
5.3 算法描述工具
➢ 算法是要通过程序才能加以实现的。常用的算法描述方式 :
1. 自然语言
第5章 算法与复杂性
第5章 算法与复杂性
学习目标
➢ 了解算法的概念和特性、算法的描述工具、评价、算法设 计策略、分布式算法、可计算性理论基础、NP问题、自 动机理论、加密算法、几何算法、并行算法等。
➢ 掌握几种经典算法的基本思想。 ➢ 一个好的算法是程序设计的关键,本章首先介绍算法的基
本知识、常用算法及算法评价的基础知识,然后介绍几种 常用的算法,为今后进一步学习算法及其复杂性打好基础。
then 1.1 return a else 1.2 return b end if
5.4 算法的评价
对于一个算法的评价,通常要从正确性、可理解性、 健壮性、时间复杂度(Time Complexity)及空间复杂度 (Space Complexity)等多个方面加以衡量。
➢ 1.算法的时间复杂度
4. 输入数据与输出数据的要求
➢ 一个算法应该有0个或多个输入数据、有1 个或多个输出数据。
5.2 常用算法
1. 递归算法
如果一个过程(函数、子程序)直接或间接地调用它本身, 则称该过程(函数、子程序)是递归的。递归是设计和构 造计算机算法的一种基本方法,递归过程必须存在一个递 归终止条件,即存在一个“递归出口”,无条件的递归是 毫无意义的。
5.10 加密算法
➢ 数据加密的基本过程就是对原来为明文的文件或数据按 某种算法进行处理,使其成为不可读的一段代码,通常 称为“密文”。
➢ 该过程的逆过程为解密,即将该编码信息转化为其原来 数据的过程。
➢ 加密技术通常分为“对称式”和“非对称式”两大类。 ➢ 对称式加密就是加密和解密使用同一个密钥, ➢ 非对称式加密就是加密和解密所使用的不是同一个密钥,
• 那么,宰相要求得到的麦粒到底有多少呢?总数为: 1+2+22+ … +263=264-1
5.2 常用算法
2. 迭代算法
迭代是指重复执行一组指令或操作步骤,在每次执行这组 指令时,都在原来的解的基础上推出一个新的解,新的解 比原来的解值更加接近真实的解。这个过程不断重复,直 到最后计算得到的解与真实解的误差满足实际要求。
A 直到 P1 成立
5.3 算法描述工具
3. 伪代码 ➢ 伪代码是用一种介于自然语言与计算机语言之间的文字和符
号来描述算法,它比计算机语言形式灵活、格式紧凑,没有 严格的语法。 例如,求两个数的较大者,用伪代码描述算法如下:
Find the bigger Input: two number s:a,b 1. if (the first number a is greater than or equal to the second number b)
5.1.1 算法
➢ 算法(Algorithm)是一组明确的、可以执行步骤 的有序集合,在有限的时间内终止并产生结果。
➢ 算法和数据结构之间存在密切联系,数据结构是 算法的基础,数据结构不同,通常采用的算法也 不同。
5.1.2 算法的特性
➢ 算法反映了求解问题的方法和步骤,不同的问题 需要用不同的算法来解决,同一个问题也可能有 多种不同的算法。一个算法必须具有以下特性:
准的DSS(数字签名标准)。
5.10 加密算法
常见加密算法有如下:
➢ (7) MD5:Message Digest Algorithm MD5(中文名为消息摘 要算法第五版)为计算机安全领域广泛使用的一种散列函数,用 以提供消息的完整性保护。以512位分组来处理输入的信息,且 每一分组又被划分为16个32位子分组,经过了一系列的处理后, 算法的输出由4个32位分组组成,将这4个32位分组级联后将生 成一个128位散列值。
5.1 算法分析
5.1.1 算法
➢ “算法”即演算法,中文名称出自《周髀 算经》,英文名称Algorithm 来自于9世纪 波斯数学家al-Khwarizmi,因为他在数学 上提出了算法这个概念。“算法”原为 "algorism",意思是阿拉伯数字的运算法 则,在18世纪演变为"algorithm"。
5.1 算法分析
5.1.1 算法
➢ 大卫·希尔伯特(David Hilbert,1862~1943) 1900年,在 巴黎举行的第2届国际数学家大会上,他作了题为《数学 问题》的著名演讲,提出了新世纪所面临的23个问题。
➢ 库尔特·哥德尔、赫尔布兰德和斯蒂芬·科尔·克莱尼分别于 1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇 于1936年提出的λ演算,1936年Emil Leon Post的 Formulation 1 和艾伦·图灵1937年提出的图灵机。
迭代算法
一个饲养场引进一只刚出生的新品种兔子,这种兔子从出 生的下一个月开始,每月新生一只兔子,新生的兔子也如 此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该 饲养场共有兔子多少只?
分析:这是一个典型的递推问题。不妨假设第1个月时兔子 的只数为 u1 ,第2个月时兔子的只数为u2 ,第3个月时兔子 的只数为u3 ,……根据题意,“这种兔子从出生的下一个 月开始,每月新生一只兔子”,则有
➢ (1) 顺序结构。程序执行完A语句后接着执行B语句,如图所示。
A B
➢ (2) 选择结构。当条件P成立时,则执行A语句,否则执行B语句, 如图所示。
P 成立
不成立
A
B
5.3 算法描述工具
➢ (3) 当型循环结构。当条件P成立时,则 循环执行A语句,如图所示
当 P 成立 A
➢ (4) 直到型循环结构。循环执行A语句, 直到条件P1成立为止,如图所示。
1. 有穷性(可终止性)
➢ 一个算法必须在有限的操作步骤内以及合理的时 间内执行完成。
2. 确定性
➢ 算法中的每一个操作步骤都必须有明确的含义, 不允许存在二义性。
5.1.2 算法的特性
3. 有效性(可行性)
➢ 包括以下两个方面: ① 算法中每一个步骤必须能够实现,如 在算法中不允许出现分母为0的情况。 ② 算法执行的结果要能够达到预期的目 的,实现预定的功能。
NP(Non-deterministic Polynomial)问题是非确定 性多项式问题,是指算法无法直接计算出结果, 只能通过进行一些有选择的“猜算”来得到结果。
NP问题的研究结果有两种可能: ➢ 一种是找到了求解问题的算法; ➢ 另一种就是求解问题的算法是不存在的,那么就
要从数学理论上证明它为什么不存在。
➢ 应用:如今天的电话系统、航班订票系统、银行系统、全 球信息系统、天气预报系统以及飞机和核电站控制系统都 依赖于分布式算法。
5.7 可计算性理论基础
➢ 研究计算的可行性和函数算法的理论,又称算法 理论,是算法设计与分析的基础,也是计算机科 学的理论基础。可计算性是函数的一个特性。
5.8 NP问题
5.9 自动机理论
数理语言学中研究抽象自动机的理论。抽象自动机是一种 能够识别语言的抽象装置,它不是具有物理实体的机器, 而是表示计算机运算方式的抽象的逻辑关系系统,这样的 抽象自动机可以用来检验输入的符号串是不是语言中合格 的句子,如果是合格的句子,自动机就接收它,如果不是 就不接收它。
自动机可分为有限自动机、后进先出自动机、线性有界自 动机、图灵机等几种。它们对语言的识别能力各不相同。
4. 贪婪算法
贪婪算法也称贪心算法,是通过一系列的选择,最终得到 问题的解。算法做出的每一个选择都是在当前状态下的最 优选择。
贪婪算法
贪婪算法通常具有贪婪选择性和最优子结构性。 贪婪选择性指的是所求解问题的整体最优解可以通过一系
列局部最优的选择。贪婪算法所做的贪婪选择可以依赖以 往所做过的选择,但不依赖于将来的选择,也不依赖于子 问题的求解,通常采取自上向下的方法,以迭代方式做出 贪婪选择,每一次选择都将问题简化为更小的子问题。 最优子结构性指的是一个问题的最优解往往包含着它的子 问题的最优解。贪婪算法一般可以快速得到满意的解,因 为它省去了为求最优解要穷尽所有可能而必须耗费的大量 时间。
通常有两个密钥,称为“公钥”和“私钥”,它们两个 必须配对使用,否则不能打开加密文件。
5.10 加密算法
常见加密算法有如下:
➢ (1)DES(Data Encryption Standard):数据加密标准,速度较快, 适用于加密大量数据的场合。
➢ (2)3DES(Triple DES):是基于DES,对一块数据用3个不同的密 钥进行3次加密,强度更高;
➢ 自然语言就是人们日常使用的语言,可以是中文、英文等。 ➢ 例如,求3个数中最大者的问题,可以描述为: ➢ ① 比较前两个数。 ➢ ② 将①中较大的数与第三个数进行比较。 ➢ ③ 步骤②中较大的数即为所求。
5.3 算法描述工具
2. 流程图
➢ 流程图是用规定的一组图形符号、流程线和文字说明来描述算法 的一种表示方法。
u1 1,u2 u1 u1 1 2,u3 u2 u2 1 4,
迭代算法
根据这个规律,可以归纳出下面的递推公式:
un u(n 1) 2(n 2)
对应 un和un-1 ,定义两个迭代变量 y 和 x ,可将上面的递 推公式转换成如下迭代关系: y=x*2 x=y
让计算机对这个迭代关系重复执行 11 次,就可以算出第 12 个月时的兔子数。
➢ (3)RC2和RC4:用变长密钥对大量数据进行加密,比DES快。 ➢ (4)IDEA(International Data Encryption Algorithm)国际数据加密
相关文档
最新文档