实用算法与程序设计.ppt
《实用算法与程序设计.ppt》由会员分享,可在线阅读,更多相关《实用算法与程序设计.ppt(55页珍藏版)》请在课桌文档上搜索。
1、1,3/24/2023,1,计算机算法与程序设计 Computer Algorithms and Programming,2,3/24/2023,2,第1章 课程介绍 Course Overview,3,3/24/2023,3,Outline,内容介绍 Introduction to Course程序设计 C/C+Programming数据结构 Data Structure算法设计 Algorithm Design程序测调试与测试 Program Debug&Test教学参考书 Bibliography,4,算法与程序设计实例,实例1.1 Fibonacci 数列问题这是一个有趣的古典数学问题
2、:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问每个月的兔子总数为多少?分析这个问题,不满1个月的为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子,老兔子每个月可以繁殖1对小兔子。可以求得每个月的兔子总数依次为1,l,2,3,5,8,13,21,34,55,89,144,。这就是Fibonacci数列。,5,算法与程序设计,6,Family Tree of Rabbits(数据结构树的处理),7,例1.1:求解Fibonacci 数列(斐彼那契序列)第20个数。Fibonacci 数列的特点:第1,2个数分别是1,
3、1。从第3个数开始,该数是其前面两个数之和。Fib(n)表示 Fibonacci 数列的第 n 项,n 从 1 开始。由此,Fibonacci 数列可以由如下数学表达式定义给出:Fib(1)=1;Fib(2)=1;Fib(n)=Fib(n-1)+Fib(n-2);(当n2时),8,Fibonacci数列数学模型,无穷数列1,1,2,3,5,8,13,21,34,55,被称为Fibonacci数列。它可以递归地定义为:,边界条件,递归方程,第n个Fibonacci数可递归地计算如下:int fibonacci(int n)if(n=1)return 1;return fibonacci(n-1)
4、+fibonacci(n-2);,9,Fibonacci 数列(斐彼那契序列)程序(解1),#include using namespace std;int main()int previous1=1,previous2=1;double current;int counter;int nthFibonacci;cin nthFibonacci;/输入序列个数 20cout 1 endl;cout 1 endl;counter=3;while(counter=nthFibonacci)current=previous1+previous2;previous1=previous2;previou
5、s2=current;counter+;cout current endl;return 0;,10,Fibonacci 数列(斐彼那契序列)程序(解2),#include using namespace std;void main()/选用数组求解 double fib1002;int n;cin n;/输入序列个数 20fib1=1;fib2=1;cout 1 fib1 endl;cout 2 fib2 endl;for(int i=3;i=n;i+)fibi=fibi-1+fibi-2;cout i fibi endl;,11,Fibonacci 数列(斐彼那契序列)程序(解3),#in
6、clude using namespace std;int n;double fib(int n);void main()cin n;/输入序列个数 20double f=fib(n);coutfendl;double fib(int n)/递归函数if(n=1)return 1;/递归条件else if(n=2)return 1;else return fib(n-1)+fib(n-2);/递归函数,12,算法与程序,输 入:有零个或多个外部量作为算法的输入。输 出:算法产生至少一个量作为输出。确定性:组成算法的每条指令清晰、无歧义。有限性:算法中每条指令的执行次数有限,执行每条指令的时间也
7、有限。,是算法用某种程序设计语言的具体实现。程序可以不满足算法的性质(4)即有限性。,是满足下述性质的指令序列。,算法:,程序:,13,微软的面试题,推理游戏:教授选出两个从2到9的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数 甲说:“我猜不出”乙说:“我猜不出”甲说:“我猜到了”乙说:“我也猜到了”问这两个数是多少?答案是:3和4(Why?)计算机可以推理计算吗?,14,算法与程序设计实例,例1.2求解N个城市之间铺设通讯光缆的最低经济代价的最小费用问题。最小生成树,15,网络的最小生成树在实际中有广泛应用。例如,在设计通信网络时,用图的顶点表示城市,用边(v,w)的
8、权cvw表示建立城市v和城市w之间的通信线路所需的费用,则最小生成树就给出了建立通信网络的最经济的方案。,16,最小生成树(Minimum-cost Spanning Tree),MST概述,1、ST对于有n个顶点的连通图,包括所有的顶点和仅能将这些顶点连通在一起的最少条边(n 1)的子图(又名极小连通子图),即为该连通图的生成树(ST),2、ST的多样性对图遍历时访问的结点和经由的边就构成了生成树,因遍历的路径和选择的起始点的不同,所经由边也不同,所以一个连通图的ST有多个方案,3、MST,连通图的边带有权值,则连通图又称为网络 在网络中边上权值之和最小的生成树叫MST MST是一个具有应用
9、价值的问题 在已知网络中求MST的方法有Kruscal和Prim两种。,17,算法与程序设计实例,解决问题:1.如何准确描述问题?算法思想;算法设计;2.如何将实际数据存放到计算机中?数据结构的选用“图”结构,“树”结构3.如何选用语句和组织程序的设计与编写?程序编码伪码算法;C/C+程序设计与编码4.如何上机调试程序?程序调试(compile,build,run;input/output)5.是否可以设计更好的程序?算法的时间复杂度分析,18,前言,哥德尔的工作揭示了有些问题是不可通过有限的步骤得以证明的,什么问题是可以通过有限的步骤证明的?沿着这个问题,哥德尔的很多工作,被应用到了可计算性
10、的研究。什么是可以有穷证明的,从可计算性的角度来说对应于,什么是可以计算的。,19,图灵机可计算,哥德尔不完备定理出世后,在剑桥大学的图灵设想:能否有这样一台机器,通过某种一般的机械步骤,能够解决所有可以解决的数学问题。以上机器就是他提出来的图灵机。图灵机可以计算的问题,就称为图灵机可计算。,20,图灵奖的由来,1.人工智能之父与计算机之父1)图灵生平及贡献 阿兰图灵(Alan Turing),19121954,英国伦敦1936年,图灵向伦敦权威的数学杂志投了一篇论文,题为“论可计算数在判定问题中的应用(On Computer numbers with an Application to th
11、e Entscheidungs-problem)”。在这篇开创性的论文中,图灵给“可计算性”下了一个严格的数学定义,并提出著名的图灵机“(TuringMachine)的设想,21,图灵奖的由来,。”图灵机“不是一种具体的机器,而是一种思想模型,可制造一种十分简单但运算能力极强的计算装置,用来计算所有能想像得到的可计算函数。图灵机理论不仅解决了纯数学基础理论问题,一个巨大的意外收获则是,理论上证明了研制通用数字计算机的可行性。”图灵机“与”冯.诺伊曼机“齐名,被永远载入计算机的发展史中。1950年10月,图灵又发表了另一篇题为机器能思考吗的论文,成为划时代之作。也正是这篇文章,为图灵赢得了人工智
12、能之父的桂冠。,22,23,图片1:图灵1951年被选入英国皇家学会时拍摄的照片,图片2:图灵在1946年,图片3:英国曼彻斯特市为图灵塑造的雕像,24,图灵奖的由来,1.人工智能之父与计算机之父2)国际计算机的最高奖项图灵奖“图灵(Turing)奖”是美国计算机协会(ACM,Association for Computer Machinery)干 1966年设立的,专门奖励那些对计算机科学研究与推动计算机技术发展有卓越贡献的杰出科学家。图灵奖是世界计算机科学领域的最高奖项,与物理、化学、医学、经济学领域的诺贝尔奖齐名。,25,图灵奖的由来,设立的初衷是因为计算机技术的飞速发展,尤其到20世纪
13、60年代,其已成为一个独立的有影响的学科,信息产业亦逐步形成,但在这一产业中却一直没有一项类似“诺贝尔”、“普利策”等的奖项来促进该学科的进一步发展,为了弥补这一缺陷,于是“图灵”奖便应运而生,它被公认为计算机界的“诺贝尔”奖。,26,图灵奖的由来,图灵机的出现,奠定了计算机科学的理论基础,计算机的出现已经主要是技术实现的问题了。据说,图灵在二战期间主持设计了一台计算机。但资料比较多的,1946年,数学家冯诺依曼主持设计了第一台计算机。但不管如何,图灵被广泛认为是“计算机之父”。现代计算机的计算能力,还是在图灵机的计算能力之内,当然速度是越来越快了。图灵开辟了一条大路,后来的科学家又开辟了一些
14、中路小路,我们则行走在前人铺就的路上。,27,“图灵奖”科学家,1966年,美国计算机协会设立以图灵为名的“图灵奖”,用于表彰在计算机科学领域做出突出贡献的科学家。图灵奖的得主有:Ken Thompson,Dennis M.Ritchie,Minsky,“人工智能之父”McCarthy,Dijkstra,Knuth,Backus,Floyd,Hoare,Codd,Cook,Thompson,Wirth,姚期智,RSA三人,“互联网之父”Cerf和Kahn,28,内容介绍 Introduction to Course,第1部分:CC+程序设计程序设计语言的演变CC+程序简介如何实现CC+程序第2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用 算法 程序设计

链接地址:https://www.desk33.com/p-248329.html