当把算法用于人类和计算机之间传递智能时,文字形式算法的主要缺点是表示方法不规范,不同的人描述的相同的算法在用词和语句上有很大差异。又例如,计算机在执行每条语句前,需要首先“识别”出每条语句,C语言程序中每条语句结束后增加的语句结束标记符号“;”,表示当前的一条语句到此结束,这样的标识就方便了计算机对程序语句的“识别”。......
2023-11-18
在第1章我们简单介绍了算法的概念,并指出:软件的主体是程序,程序的核心是算法。算法既是人类之间交流智能的工具,也是人和机器之间交流智能的工具。算法既然在软件开发中具有如此重要的地位,我们就要对算法问题给予足够的重视。为此,我们需要给出算法的严格定义。
算法是描述求解问题方法的操作步骤的集合,这样的操作步骤必须具有确定性、可终止性和可执行性。
算法的确定性是指算法中的每一个操作步骤必须是含义确定的。算法的可终止性是指算法应能在有限的操作步骤后结束。算法的可执行性是指算法中的操作步骤都是可以具体执行的。
我们仍以第1章给出的求解两个整数的最大公约数问题的算法为例,来讨论算法的定义问题。求解两个整数的最大公约数问题的方法如下:
(1)令M为两个整数中的较大者,N为两个整数中的较小者;
(2)用M除以N,令R为M除以N的余数;
(3)若R不等于0,则令M等于N,N等于R,返回步骤(2)继续;若R等于0,则N中的数值就是两个整数的最大公约数。
显然,上述方法满足算法所要求的三点:第一,上述方法的每一个操作步骤都是含义确定的;第二,当两个整数M和N为有限数值时,上述方法可在有限的操作步骤后结束;第三,上述方法的每一个操作步骤都是可以具体执行的。因此,上述方法是一个算法。
但是,下面的方法就不是一个算法:(www.chuimin.cn)
(1)构造一个包含所有正整数数值的表;
(2)把这个表按从大到小的次序排序。
虽然上述方法的两个操作步骤都满足确定性,但是,步骤(1)要求构造包含所有正整数数值的表,所以不满足有穷性;步骤(2)要求把包含无限个正整数数值的表按从大到小的次序排序,而这样的要求是无法作到的,因此不满足可执行性。所以,上述方法不是一个算法。
从算法所具有的确定性、可终止性和可执行性,可以得出如下结论:
(1)由于算法中所有的操作步骤都具有确定性,而任何确定的、无二义的操作,计算机都可以按部就班地一步步执行,所以,我们很容易就可以把求解问题的算法转变为计算机可以执行的程序。
(2)计算机求解任何问题,必须在一个有限的时间段内得到处理结果,算法的可终止性保证了这一点。
(3)算法的可执行性保证了所有操作步骤都是在计算机上可以执行的。
从另一个角度来看,算法所处理的问题一定有零个或若干个输入数据,算法对一个问题的零个或若干个输入数据处理后,一定产生至少一个作为处理结果的输出数据。所以,从函数映射的角度看,算法是输入数据到输出数据的一种映射。
有关计算机导论的文章
当把算法用于人类和计算机之间传递智能时,文字形式算法的主要缺点是表示方法不规范,不同的人描述的相同的算法在用词和语句上有很大差异。又例如,计算机在执行每条语句前,需要首先“识别”出每条语句,C语言程序中每条语句结束后增加的语句结束标记符号“;”,表示当前的一条语句到此结束,这样的标识就方便了计算机对程序语句的“识别”。......
2023-11-18
图1-4 不同主体之间的智能传递要让人利用算法把智能传递给机器,需要做到的是:机器必须能正确地理解并正确地执行算法。在如图1-1所示的冯·诺依曼体系结构计算机中,程序是计算机能理解的求解某一特定问题的算法,人利用输入部件把程序输入到计算机,输入的程序存储到计算机的存储部件,运行程序需要的数据也存储到计算机的存储部件,处理部件根据程序一步一步地执行,程序运行的结果通过输出部件输出给人。......
2023-11-18
分析各种典型问题的算法,可以归纳整理出算法中的基本操作集合。一般来说,算法中的基本操作包含如下几种类型:数据传送:从某个内存单元中取出数值放于某个寄存器中;把某个寄存器中的数值放于某个内存单元中。例如,计算两个二进制数乘积pro=x*y问题,图3-1给出了两个二进制数相乘的方法,根据图3-1所示的方法,可以编写出用基本操作表示的处理该问题的算法。......
2023-11-18
“黑客”最初是用来称呼那些试图测试计算机程序能力极限的计算机用户。但后来当某些人尝试非法访问计算机系统时,新闻媒体就用“黑客”来称呼那些试图未经授权对计算机系统进行访问的人。“黑客”的行为是错误的,一些对计算机知识有着深入了解的人,为了展示自己的才能,实现自我价值,或被利益诱惑而成为“黑客”,并对一些政府部门或企业的内网进行攻击,这些都是违法的行为。......
2023-11-25
快速运算是计算机最显著的特点。现代计算机提供多种数据表示方式,以满足各种计算精度的要求。目前,应用最为广泛的是数字计算机,因此,常把数字计算机简称为电子计算机或计算机。一般的数字计算机多属此类。......
2023-11-25
现实生活中,很多变量的变化是连续不断的,比如气温的变化、植物的生长、物体受热时面积的变化等,都是连续的变化.这种现象在数学上用函数的连续性来反映和研究.一、连续函数的概念定义1.21 在函数y=f(x)的定义域中,设自变量x由x0变到x1,差Δx=x1-x0叫做自变量x的增量(改变量),相应的函数值的差Δy=f(x1)-f(x0)=f(x0+Δx)-f(x0)叫做函数y=f(x)的增量(见图1-1......
2023-11-22
【主要内容】设二元函数z=f(x,y)在点(x0,y0)的某个邻域内有定义.如果它在点(x0,y0)处的全增量Δz=f(x0+Δx,y0+Δy)-f(x0,y0)可以表示为Δz=AΔx+BΔy+o(ρ)(其中A和B不依赖于Δx,Δy,o(ρ)是比ρ=高阶的无穷小),则称z=f(x,y)在点(x0,y0)处可微,称AΔx+BΔy为z=f(x,y)在点(x0,y0)处的全微分,记为,即注 (ⅰ)二元函......
2023-10-27
相关推荐