第4部分计算学科中的核心概念.ppt
《第4部分计算学科中的核心概念.ppt》由会员分享,可在线阅读,更多相关《第4部分计算学科中的核心概念.ppt(76页珍藏版)》请在三一办公上搜索。
1、第4章计算学科中的核心概念,4.1 算法,算法的历史简介,公元825年,阿拉伯数学家阿科瓦里茨米(AlKhowarizmi)写了著名的波斯教科书(Persian Textbook),书中概括了进行四则算术运算的法则。“算法”(Algorithm)一词就来源于这位数学家的名字。后来,韦氏新世界词典将其定义为“解某种问题的任何专门的方法”。而据考古学家发现,古巴比伦人在求解代数方程时,就已经采用了“算法”的思想。,丢番图方程的可解性问题,古希腊数学家丢番图(Diophantus):代数学之父在算术(Arithmetica)一书中提出了有关两个或多个变量整数系数方程的有理数解问题。对于具有整数系数的
2、不定方程,如果只考虑其整数解,这类方程就叫做丢番图方程。“丢番图方程可解性问题”的实质为:能否写出一个可以判定任意丢番图方程是否可解的算法?,一个未知数的线性丢番图方程的解,ax=b,只要a能整除b,就可判定其有整数解,该整数解即b/a。,两个未知数的线性丢番图方程 的解,ax+by=c,先求出a和b的最大公因子d,若d能整除c,则该方程有解(整数解)。问:方程13x+26y=52有无整数解?答:13和26的最大公因子是13,13又可整除52,故该方程有整数解(如x=2,y=1即方程的解)。例4.2 问:方程2x+4y=15有无整数解?答:2和4的最大公因子是2,2不能整除15,故该方程无整数
3、解。,两个未知数的线性丢番图方程 的解:欧几里德算法,给定两个正整数m和n,求它们的最大公因子,即能同时整除m和n的最大正整数。步骤如下:(1)以n除m,并令所得余数为r(r必小于n);(2)若r=0,算法结束,输出结果n;否则,继续步骤(3);(3)将n置换为m,r置换为n,并返回步骤(1)继续进行。,例4.3 设m=56,n=32,求m、n的最大公因子,算法如下:(1)32除56余数为24;(2)24除32余数为8;(3)8除24余数为0,算法结束,输出结果8。答:m、n的最大公因子为8。欧几里德算法既表述了一个数的求解过程,又表述了一个判定过程,该过程可以判定“m和n是互质的”(即除1以
4、外,m和n没有公因子)这个命题的真假。,算法,算法的定义和特征,1算法的非形式化定义,一个算法,就是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型问题的运算序列。,2算法的重要特性,有穷性:一个算法在执行有穷步之后必须结束。确定性:算法的每一个步骤必须要确切地定义。即算法中所有有待执行的动作必须严格而不含混地进行规定,不能有歧义性。输入:算法有零个或多个的输入,即在算法开始之前,对算法最初给出的量。输出:算法有一个或多个的输出,即与输入有某个特定关系的量,简单地说就是算法的最终结果。能行性:算法中有待执行的运算和操作必须是相当基本的,,3算法的形式化定义,算法是一个四元组,即(Q,I
5、,F)。其中:(1)Q是一个包含子集I和的集合,它表示计算的状态;(2)I表示计算的输入集合;(3)表示计算的输出集合;(4)F表示计算的规则,它是一个由Q到它自身的函数,且具有自反性,即对于任何一个元素qQ,有F(q)=q。,算法,算法实例,例4.4 求1+2+3+100,设变量X表示加数,Y表示被加数,用自然语言将算法描述如下:(1)将1赋值给X;(2)将2赋值给Y;(3)将X与Y相加,结果存放在X中;(4)将Y加1,结果存放在Y中;(5)若Y小于或等于100,转到步骤(3)继续执行;否则,算法结束,结果为X。,例4.5 求解调和级数,设变量X表示累加和,变量I表示循环的次数,自然语言描述
6、算法如下:(1)将0赋值给X;(2)将1赋值给I;(3)将X与1/I相加,然后把结果存入X;(4)将I加1;(5)若I大于等于N,算法结束,结果为X;否则转到步骤(3)继续执行。,例4.6 求解斐波那契数,0,1,1,2,3,5,8,13,21,34,(1)来源于1202年意大利数学家斐波那契(L.P.Fibonacci)在其珠算之书(Liber Abaci)中提出的一个“兔子问题”:假设一对刚出生的兔子一个月后就能长大,再过一个月就能生下一对兔子,并且此后每个月都能生一对兔子,且新生的兔子在第二个月后也是每个月生一对兔子。问:一对兔子一年内可繁殖成多少对兔子?,在序列(1)中,每个数都是它的
7、前两个数之和,Fn表示这个序列的第n个数,该序列可以形式化的定义为:F0=0,F1=1,Fn+2=Fn+1+Fn,n0斐波那契数列还是一个关于加法算法的典型实例。,设变量X表示前一个数的值,即定义中的Fn,变量Y表示当前数的值,即定义中的Fn+1,变量Z表示后一个数的值,即定义中的Fn+2。那么求解问题的自然语言描述如下:,(1)如果=0,那么将0赋值给Y,并输出Y,转步骤(11)继续执行;(2)将0赋给X,将1赋值给Y;(3)输出X、Y;(4)将1赋值给I;(5)如果I大于-1,则转到步骤(11),否则继续执行;(6)将X和Y的和赋值给Z;(7)将Y赋值给X;(8)将Z赋值给Y;(9)将Y输
8、出;(10)将I加1,转步骤(5)继续执行;(11)算法结束。,算法,算法的表示方法,原语,一个算法的表达需要使用一些语言形式自然语言“Visiting grandchildren can be nerve-racking”,可能即意味着孙子孙女导致了很多问题,也表示去看他们可能会有问题图形语言:很少人能够根据折纸图给出的步骤成功地叠出一只鸟来,但一个专门学习过折纸的学生可以轻松完成当用来描述算法的语言并没有被准确定义或者没有给予足够信息的时候,交流就会产生问题,原语,通过建立一个可以描述算法的意义明确的基本块(原语)集合,计算机科学即就可以解决上述的勾通问题原语描述算法需要建立一个统一的细节
9、描述级别,原语连同一组表达了原语如何表达复杂的想法的规定组成了一种程序设计语言组成语法:原语的符号表示语义:表达了原语的意义,1自然语言,缺点由于自然语言的歧义性,容易导致算法执行的不确定性;自然语言的语句一般太长,从而导致了用自然语言描述的算法太长;由于自然语言表示的串行性,因此,当一个算法中循环和分支较多时就很难清晰地表示出来;自然语言表示的算法不便翻译成计算机程序设计语言理解的语言。,2流程图,它采用美国国家标准化协会ANSI(American National Standard Institute)规定的一组图形符号来表示算法。流程图可以很方便地表示顺序、选择和循环结构,而任何程序的逻
10、辑结构都可以用顺序、选择和循环结构来表示,流程图可以表示任何程序的逻辑结构。用流程图表示的算法不依赖于任何具体的计算机和计算机程序设计语言,,(1)求解例4.4的算法流程图,(2)求解例4.5的算法流程图,(3)求解例4.6的算法流程图,3伪代码(1)求解例4.4的伪代码算法描述:,BEGIN(算法开始)1 X 2 Ywhile(Y=100)X+Y X Y+1 Y Print XEND(算法结束),(2)求解例4.5的伪代码算法描述:,BEGIN(算法开始)0 X1 Ido X+1/I X I+1 I while(I=n)END(算法结束),(3)例4.6的伪代码算法描述:,BEGINif n
11、=0 0 Y Print Y else,0 X 1 Y Print X,Yfor(i=1;i=n-1;i+)X+YZYXZYPrint YEND,4计算机程序设计语言,计算机程序设计语言描述的算法(程序)是清晰的、简明的,最终也能由计算机处理的。缺点:算法的基本逻辑流程难于遵循。与自然语言一样,程序设计语言也是基于串行的用特定程序设计语言编写的算法限制了与他人的交流,不利于问题的解决;要花费大量的时间去熟悉和掌握某种特定的程序设计语言;要求描述计算步骤的细节,而忽视算法的本质。,例4.4的计算机程序设计语言(C语言)的算法描述:,main()int X,Y;X=1;Y=2;while(Y=10
12、0)X=X+Y;Y=Y+1;printf(%d,X);,例4.5的计算机程序设计语言(C语言)的算法描述,main()int n;float X,I;printf(Please input n:);scanf(%d,do X=X+1/I;I=I+1;while(I=n);printf(n%f,X);,算法,算法分析,(1)算法的时间复杂度;,用T(n)表示,n表示问题规模的大小。使用一个记号Order(数量级)的第一个字母,允许使用“=”代替“”。如n2+n+1=(n2)设f(n)是一个关于正整数n的函数,若存在一个正整数n0和一个常数C,当nn0时,T(n)C f(n)均成立,则称f(n)为
13、T(n)的同数量级的函数。算法时间复杂度T(n)可表示为:T(n)=(f(n),常见的大表示形式有:,(1)称为常数级;(logn)称为对数级;(n)称为线性级;(nc)称为多项式级;(cn)称为指数级;(n!)称为阶乘级。,算法的空间复杂度,指算法在执行过程中所占存储空间的大小,用S(n)表示,S为英文单词Space的第一个字母。与算法的时间复杂度相同算法的空间复杂度S(n)也可表示为:S(n)=(g(n)。,算法,算法的研究,算法,算法:定义一向工作如何完成的步骤的集合在一台机器可以完成一个任务之前,必须找到完成这个任务的算法并且用与机器兼容的方式来描述一个与机器兼容的算法的描述程序算法的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 部分 计算 学科 中的 核心 概念
链接地址:https://www.31ppt.com/p-5903536.html