当前位置:首页 » 操作系统 » 算法一词源于

算法一词源于

发布时间: 2023-01-01 12:46:24

⑴ 电脑发展史

发展历史
(1)大型主机阶段
20世纪40-50年代,是第一代电子管计算机。经历了电子管数字计算机、晶体管数字计算机、集成电路数字计算机和大规模集成电路数字计算机的发展历程,计算机技术逐渐走向成熟。;
(2)小型计算机阶段
20世纪60-70年代,是对大型主机进行的第一次“缩小化”,可以满足中小企业事业单位的信息处理要求,成本较低,价格可被接受;
(3)微型计算机阶段
20世纪70-80年代,是对大型主机进行的第二次“缩小化”,1976年美国苹果公司成立,1977年就推出了AppleII计算机,大获成功。1981年IBM推出IBM-PC,此后它经历了若干代的演进,占领了个人计算机市场,使得个人计算机得到了很大的普及;
(4)客户机/服务器
即C/S阶段。随着1964年IBM与美国航空公司建立了第一个全球联机订票系统,把美国当时2000多个订票的终端用电话线连接在了一起,标志着计算机进入了客户机/服务器阶段,这种模式至今仍在大量使用。在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,大大减轻了服务器的压力;
(5)Internet阶段
也称互联网、因特网、网际网阶段。互联网即广域网、局域网及单机按照一定的通讯协议组成的国际计算机网络。互联网始于1969年,是在ARPA(美国国防部研究计划署)制定的协定下将美国西南部的大学(UCLA(加利福尼亚大学洛杉矶分校)、Stanford Research Institute(史坦福大学研究学院)、UCSB(加利福尼亚大学)和University of Utah(犹他州大学))的四台主要的计算机连接起来。此后经历了文本到图片,到现在语音、视频等阶段,宽带越来越快,功能越来越强。互联网的特征是:全球性、海量性、匿名性、交互性、成长性、扁平性、即时性、多媒体性、成瘾性、喧哗性。互联网的意义不应低估。它是人类迈向地球村坚实的一步;
(6)云计算时代
从2008年起,云计算(Cloud Computing)概念逐渐流行起来,它正在成为一个通俗和大众化(Popular)的词语。云计算被视为“革命性的计算模型”,因为它使得超级计算能力通过互联网自由流通成为了可能。企业与个人用户无需再投入昂贵的硬件购置成本,只需要通过互联网来购买租赁计算力,用户只用为自己需要的功能付钱,同时消除传统软件在硬件,软件,专业技能方面的花费。云计算让用户脱离技术与部署上的复杂性而获得应用。云计算囊括了开发、架构、负载平衡和商业模式等,是软件业的未来模式。它基于Web的服务,也是以互联网为中心。

⑵ 大数据的发展,伴随的将是软件工程师的渐退,算法工程师的崛起

大数据在人类 历史 长河的各个时期一直存在着,只是要等到技术发展到一定阶段,它才开始崭露头角。而它的未来又在哪里?来自 Intercom 的工程师 Cathal Horan 表达了他对大数据的看法,他认为,未来属于算法,而不是代码。以下内容翻译自 Cathal 在 hackernoon 网站发表的博文,已获得翻译授权。原文链接:The future is algorithms, not code。

“大数据时代”的称号并不能为当今世界所独享,数据充斥着人类文明 历史 长河的各个时期。纵观这些 历史 时期,通过从离散到抽象的转换,我们就会明白为什么算法比代码重要。

说到大数据……

如果我们把整个人类 历史 看成一天,那么我们只能从晚上 11 点 7 分开始说起。这是安静的一天。但是在随后的一丁点时间里,我们积攒了很多知识和故事,并打算将它们传达给其他人。你可以想象最开始人类通过对话的形式将知识代代相传,从父辈传给子辈,从老师传给学生。但是整个 社会 的知识量增长迅速,以至于最初的对话形式无法传达这么多的信息。

我们需要将这些信息编撰成册进行保存和传播。通过书写的方式将知识编撰成册代表着这些时期在技术上的重大转变。事实上,苏格拉底(柏拉图“斐德罗篇”里的角色)认为这种技术转变比不上最初的对话形式,担心它会降低我们开发智慧和知识的能力。所以很自然地,我不认为苏格拉底会喜欢电视。

问题的核心是,对话代表了一种离散的沟通手段。你知道你的交谈对象是谁,而且参与对话的人通过论证和反证的方式进行直接的互动。反过来,书本是一种抽象的沟通手段,作者和读者之间不存在直接的互动。作者并不知道谁读了他的书,也不知道有多少人、在什么时候、在哪里读了他的书。有时候,我们可能知道潜在的读者群体是谁,然后根据读者群体进行内容裁剪。不过大多数时候,书本都只是一种抽象的传播知识和学习新技能的手段。

等腰三角形的大数据

当我们从简单的计算形式转变为由定理、符号和算法组成的抽象形式(我们现在称其为数学),就开启了另一个大数据时代。第一批有记载的计算发生在公元前 2500 年的美索不达米亚。当时,美索不达米亚人需要计算出一谷仓的粮食能够养活多少人。

或许你想知道人类 历史 上的其他大数据时期,不过我想直接跳到 20 世纪,看看代码如何成为现代技术领域的重要组成部分(如果你有其他大数据时期的资料,可以联系我 @cathalhoran,我相信它们会很有趣)。

代码的崛起

1945 年,当 Grace Hopper 开始在 Harvard Mark I 计算机上工作时,编码(或者说编程,不过我们不打算在这里区分它们有什么不同)这项工作的重要性就开始凸显出来。在这之前,电脑(如果可以这么叫它的话)充其量只是个计算工具。以二战为例,当时的大炮需要借助矩阵进行辅助瞄准。矩阵是一些方程式的计算结果,这些方程式使用数百种不同的计算因子,比如距离、海拔、风速、温度、湿度,等等。电脑(computer)这个名字的由来也是很偶然的,人们用它描述在二战中操作计算机的女性,她们被称为“computer”。操作员们必须使用打孔卡和曲柄来处理方程式。一个打孔卡需要 170 个人月才能完成。

这个与我们之前讨论的事情有什么相似之处?美索不达米亚人使用黏土矩阵来进行计算,而到了 20 世纪,计算媒介变成了编码。虽然已经有了长足的进步,不过编码仍然是一种离散的操作,因为它执行的是具体的计算任务,只是效率上有所提升而已。编码解放了人工操作,让我们可以处理更多的数据。

算法与代码

算法 :一系列用于描述一个问题解决方案的步骤,符合正确性和有限性的标准。是与具体实现相互独立的抽象计算步骤。

代码 :一系列计算机指令。它们是计算的具体实现,使用一种特定的编程语言,运行在一个特定的平台上。

人们可以借助这种直接向计算机发送编码指令的方式来实现更为复杂的指令序列,并以算法的形式呈现出来。算法比编码的出现要早得多。穆斯林数学家 Al-Khawarizm 早在公元 820 年就对解决线性方程和二次方程式的算法进行了描述。算法一词来源于这位数学家的拉丁文名字“Algoritmi”,而“algebra”则来源于“al-jabr”,Al-Khawarizm 用它来解决二次方程式问题。算法由一系列有限的计算或指令组成,并产生一个结果。正如我们所知道的那样,代码是向计算机发出指令的一种方式,很适合用于实现算法。它们只不过是一系列按照一定次序执行的操作。

与早期的大数据时期一样,我们这个时代的信息量也在增长。根据摩尔定律,我们在编码的设计和使用方面所作的改进换来了性能的提升,从而能够应付不断增长的数字化需求。你可以继续编写代码从数据库查询相关的资源列表。这些操作的离散特征仍然被保留了下来,因为人们仍然在通过编写代码告诉硬件应该做哪些事情。就算操作变得越来越复杂,它仍然只是人类的编码指令。不过,算法已经开始展露头角,正在创造一个抽象的新时代。

算法的崛起

所以说,算法和代码之间有很大的不同。代码可以用来实现算法,而且代码的实现方式会影响到性能。例如,如果你要从一个序列里找出最大或最小的元素,那么二叉堆的性能相比其他的数据结构要好很多。不过,你已经没有必要通过编写代码来实现一个算法,就像没有必要通过听音乐来写歌一样。

虽然每个人都知道摩尔定律的魔力,驱动数字经济发展的性能改进遵循的就是摩尔定律,但鲜有人知道, 在很多领域,算法所产生的性能改进已经超过了硬件所带来的性能提升。 实际上,2010 年的一份官方报告表明,算法已经为很多领域带来了显着的性能提升,比如语音识别、神经语言处理和物流。

“更加令人感到吃惊但同时又令人难以理解的是,在很多领域,算法为性能带来的提升已经远远超过了处理器速度提升所带来的性能改进。”—— 面向总统和国会的报告:设计数字的未来

抽象算法

我们现在拥有大量的数据,这意味着我们不能再用离散的思维来思考问题。大数据促使我们转变思维。它促使我们向后退一步,去寻找能够处理数据洪流的方法。按照传统的方式,你可能会根据一些指定的模式或参数编写代码来查询数据。例如,你可能想从数据库中查找在过去两周买过 2 件商品并且支付超过 30 欧元的顾客,因为你想联系到这些顾客,并向他们推荐一些优惠活动。你使用这个模式来查找匹配的数据。不过大数据却正好相反,你先有了数据,然后查找可以匹配这些数据的模式。

想想看,有这么多的数据,但是我们却找不到匹配的模式,所以我们要回退一步。我们通过集群、分类、机器学习和其他新的支撑技术来寻找模式,而能够帮助我们做到这点的是算法,不是代码。要找到隐藏在暗处的模式,跨出这一步是必需的。与光谱一样,有一些波长的光线我们是看不到的,而超过一定数据量之后的模式我们也是看不到的,它就是大数据。

我们不仅可以从中搜索到模式,它还能够生成做这些事情所需要的代码。Pedro Domingos 在“The Master Algorithm”一书中描述了如何使用“学习者算法”来创建新的算法,这些算法可以反过来为我们编写我们所需要的代码,“通过机器学习,计算机可以自己编程,我们就可以解放了”。为了实现这个目标,我们需要更好地理解这些算法的原理,以及如何让它们与我们的需求相匹配。否则,我们就无法向抽象转变。

“工业的发展让手工劳动自动化,信息的发展让脑力劳动自动化,而机器学习则让它自己自动化。如果没有机器学习,程序员就会成为发展瓶颈。而有了机器学习,发展的速度就会加快。”—— Pedro Domingos,“The Master Algorithm

思考算法

不过,不管如何从离散转变成抽象,我们仍然需要程序员,但这不是重点。并不是说代码已经变得不重要了,也不是说代码就不会再带来任何改进。重点在于,我们要开始思考算法,这不仅仅是数学家或学者的事情。我们周边充斥着各种算法,以致于我们不需要知道如何编写代码来使用它们,或者理解它们。现在,有一些人通过新的算法对不同的领域进行优化和改进,他们使用了遗传编程(genetic programming)和大数据技术。人们甚至创造了更好的优化技术,他们观察金属的冷却过程,并通过算法对其进行建模(被称为模拟退火算法,这就是我们应该从算法角度开始考虑问题的一个最好的例子)。

编码作为新数字经济的关键技能,就像学习如何阅读一样,已经模糊了我们对算法的理解。算法正逐渐成为我们生活的组成部分,从电影推荐到新闻过滤和寻找合作伙伴。我们要更好地理解它们,这样才能更好地理解和掌控我们的未来


⑶ 什么叫算法什么叫计算机算法

一、算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。
二、计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述。

⑷ 算法的基本特征是

算法

3分钟了解今日头条算法原理(科普版)
02:43

什么是算法
04:28
概述
历史发展
算法分类
算法特征
算法要素
算法评定
目录
1摘要
2基本信息
3概述
4历史发展
5算法分类
6算法特征
7算法要素
数据的运算和操作
算法的控制结构
8算法评定
9描述方式
10史料记载
11基本方法
12参考资料
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制;它是求解问题类的、机械的、统一的方法,常用于计算、数据处理(英语:Data processing)和自动推理。可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。

算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。

基本信息
中文名
算法

外文名
Algorithm

拼音
suanfa

出处
数学 计算机

定义
是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制

展开全部
概述
求解问题类的、机械的、统一的方法,它由有限多个步骤组成,对于问题类中的每个给定的具体问题,机械地执行这些步骤就可以得到问题的解答。算法的这种特性,使得计算不仅可以由人,而且可以由计算机来完成。用计算机解决问题的过程可以分成三个阶段:分析问题、设计算法和实现算法。[1]

历史发展
中国古代的筹算口决与珠算口决及其执行规则就是算法的雏形,这里,所解决的问题类是算术运算。古希腊数学家欧几里得在公元前3世纪就提出了一个算法,来寻求两个正整数的最大公约数,这就是有名的欧几里得算法,亦称辗转相除法。中国早已有“算术“、“算法”等词汇,但是它们的含义是指当时的全部数学知识和计算技能,与现代算法的含义不尽相同。英文algorithm(算法)一词也经历了一个演变过程,最初的拼法为algorism或algoritmi,原意为用阿拉伯数字进行计算的过程。这个词源于公元 9世纪波斯数字家阿尔·花拉子米的名字的最后一部分。[1]

在古代,计算通常是指数值计算。现代计算已经远远地突破了数值计算的范围,包括大量的非数值计算,例如检索、表格处理、判断、决策、形式逻辑演绎等。

在20世纪以前,人们普遍地认为,所有的问题类都是有算法的。20世纪初,数字家们发现有的问题类是不存在算法的,遂开始进行能行性研究。在这一研究中,现代算法的概念逐步明确起来。30年代,数字家们提出了递归函数、图灵机等计算模型,并提出了丘奇-图灵论题(见可计算性理论),这才有可能把算法概念形式化。按照丘奇-图灵论题,任意一个算法都可以用一个图灵机来实现,反之,任意一个图灵机都表示一个算法。

按照上述理解,算法是由有限多个步骤组成的,它有下述两个基本特征:每个步骤都明确地规定要执行何种操作;每个步骤都可以被人或机器在有限的时间内完成。人们对于算法还有另一种不同的理解,它要求算法除了上述两个基本特征外,还要具有第三个基本特征:虽然有些步骤可能被反复执行多次,但是在执行有限多次之后,就一定能够得到问题的解答。也就是说,一个处处停机(即对任意输入都停机)的图灵机才表示一个算法,而每个算法都可以被一个处处停机的图灵机来实现[1]

算法分类
算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法。[1]

算法可以宏泛的分为三类:

有限的,确定性算法 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。

有限的,非确定算法 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。

无限的算法 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。[1]

算法特征
1、输入项:一个算法有零个或多个输入,以刻画运算对象的初始情况。例如,在欧几里得算法中,有两个输入,即m和n。[1]

2、确定性:算法的每一个步骤必须要确切地定义。即算法中所有有待执行的动作必须严格而不含混地进行规定,不能有歧义性。例如,欧几里得算法中,步骤1中明确规定“以m除以n,而不能有类似以m除n以或n除以m这类有两种可能做法的规定。

3、有穷性:一个算法在执行有穷步滞后必须结束。也就是说,一个算法,它所包含的计算步骤是有限的。例如,在欧几里得算法中,m和n均为正整数,在步骤1之后,r必小于n,若r不等于0,下一次进行步骤1时,n的值已经减小,而正整数的递降序列最后必然要终止。因此,无论给定m和n的原始值有多大,步骤1的执行都是有穷次。

4、输出:算法有一个或多个的输出,即与输入有某个特定关系的量,简单地说就是算法的最终结果。例如,在欧几里得算法中只有一个输出,即步骤2中的n。

5、能行性:算法中有待执行的运算和操作必须是相当基本的,换言之,他们都是能够精确地进行的,算法执行者甚至不需要掌握算法的含义即可根据该算法的每一步骤要求进行操作,并最终得出正确的结果。[1]

⑸ algorithm与arithmatic的区别,到底那个词在英文中是算法的意思

词性不同,algorithm是名词,algorithmic是形容词.
algorithm
[英]['ælɡərɪðəm][美][ˈælɡəˌrɪðəm]
n.运算法则; 算法; 计算程序;
An algorithm then scrapes the web for relevant historical content--newsclippings, pictures, video footage.
记录完故事后,Story Coach的算法会在互联网上搜索与故事相关的历史资料——新闻片段、图片、视频等.
algorithmic
[英]ˌælgə'rɪðmɪk [美]ˌælgə'rɪðmɪk
adj. 算法的,规则系统的
[例句]Professional criminals are increasingly likely to outflank legitimate companies in competing for google 's algorithmic attention , security professionals say.
网络安全专家表示,在争取谷歌(google)搜索算法的关注度方面,职业犯罪分子越来越可能比合法公司智高一筹.

⑹ 人工智能算法的来源源于哪里

人工智能用的比较多的语言有:Python、JAVA 和相关语言、C/C++、JavaScript、R语言。
人工智能是需要人力、脑力、开发、高等技术与不断的研究和尝试等等一系列超高难度的作业才能完成的科技产品。当然这种研究是得到国家和人们大力支持的发展。它的发展对国际影响力是非常大的。人工智能也可以定义为高仿人类,虽然不可能会像人一样具有灵敏的反应和思考能力,但人工知能是按照人类的思想结构等等的探索而开发的研究。
人工智能的开发最主要的目的就是为了替人类做复杂、有危险难度、重复枯燥等的工作,所以人工智能是以人类的结构来设计开发的,人工智能在得到较好的开发后国家也是全力给予支持。人工智能的开发主要也是为了帮助和便利人类的生活。所以人工智能的定义一直以来都是以“协助人类”而存在的。人工智能概念的火热促进了不少行业的兴起,比如域名,许多相关的.top域名已经被注册。
以后可能在很多传统行业,比如银行,会有人工智能帮你得到更好的收益。信用卡或其他的贷款会由人工智能来决定哪些人士可以安全地放贷,而且会还钱。然后再往下人工智能可以开始动了,就可以进入工业机器人、商业机器人,终进入家庭机器人。

⑺ 算法是什么急!!!!

算法 Algorithm

算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。

一个算法应该具有以下五个重要的特征:

1、有穷性: 一个算法必须保证执行有限步之后结束;

2、确切性: 算法的每一步骤必须有确切的定义;

3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;

4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;

5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。

算法的设计要求
1)正确性(Correctness)
有4个层次:
A.程序不含语法错误;
B.程序对几组输入数据能够得出满足规格要求的结果;
C.程序对精心选择的、典型的、苛刻的、带有刁难性的几组输入数据能够得出满足规格要求的结果;
D.程序对一切合法的输入数据都能产生满足规格要求的结果。
2)可读性(Readability)
算法的第一目的是为了阅读和交流;
可读性有助于对算法的理解;
可读性有助于对算法的调试和修改。
3)高效率与低存储
处理速度快;存储容量小
时间和空间是矛盾的、实际问题的求解往往是求得时间和空间的统一、折中。
算法的描述 算法的描述方式(常用的)
算法描述 自然语言
流程图 特定的表示算法的图形符号
伪语言 包括程序设计语言的三大基本结构及自然语言的一种语言
类语言 类似高级语言的语言,例如,类PASCAL、类C语言。

算法的评价 算法评价的标准:时间复杂度和空间复杂度。
1)时间复杂度 指在计算机上运行该算法所花费的时间。用“O(数量级)”来表示,称为“阶”。
常见的时间复杂度有: O(1)常数阶;O(logn)对数阶;O(n)线性阶;O(n^2)平方阶
2)空间复杂度 指算法在计算机上运行所占用的存储空间。度量同时间复杂度。

时间复杂度举例
(a) X:=X+1 ; O(1)
(b) FOR I:=1 TO n DO
X:= X+1; O(n)
(c) FOR I:= 1 TO n DO
FOR J:= 1 TO n DO
X:= X+1; O(n^2)

“算法”一词最早来自公元 9世纪 波斯数学家比阿勒·霍瓦里松的一本影响深远的着作《代数对话录》。20世纪的 英国 数学家 图灵 提出了着名的图灵论点,并抽象出了一台机器,这台机器被我们称之为 图灵机 。图灵的思想对算法的发展起到了重要的作用。
算法是 计算机 处理信息的本质,因为 计算机程序 本质上是一个算法,告诉计算机确切的步骤来执行一个指定的任务,如计算职工的薪水或打印学生的成绩单。 一般地,当算法在处理信息时,数据会从输入设备读取,写入输出设备,可能保存起来以供以后使用。
这是算法的一个简单的例子。
我们有一串随机数列。我们的目的是找到这个数列中最大的数。如果将数列中的每一个数字看成是一颗豆子的大小 可以将下面的算法形象地称为“捡豆子”:
首先将第一颗豆子(数列中的第一个数字)放入口袋中。
从第二颗豆子开始检查,直到最后一颗豆子。如果正在检查的豆子比口袋中的还大,则将它捡起放入口袋中,同时丢掉原先的豆子。 最后口袋中的豆子就是所有的豆子中最大的一颗。
下面是一个形式算法,用近似于 编程语言 的 伪代码 表示
给定:一个数列“list",以及数列的长度"length(list)" largest = list[1] for counter = 2 to length(list): if list[counter] > largest: largest = list[counter] print largest
符号说明:
= 用于表示赋值。即:右边的值被赋予给左边的变量。
List[counter] 用于表示数列中的第 counter 项。例如:如果 counter 的值是5,那么 List[counter] 表示数列中的第5项。
<= 用于表示“小于或等于”。
算法的分类
(一)基本算法 :
1.枚举
2.搜索:
深度优先搜索
广度优先搜索
启发式搜索
遗传算法
(二)数据结构的算法
(三)数论与代数算法
(四)计算几何的算法:求凸包
(五)图论 算法:
1.哈夫曼编码
2.树的遍历
3.最短路径 算法
4.最小生成树 算法
5.最小树形图
6.网络流 算法
7.匹配算法
(六)动态规划
(七)其他:
1.数值分析
2.加密算法
3.排序 算法
4.检索算法
5.随机化算法

⑻ 算法是指解决问题的一种方法或一个过程对吗

正确
算法是指解决问题的方法或过程,它包含一系列步骤,用来将输入数据转换成输出结果。

⑼ 什么是算法,都什么,举个例子,谢谢

根据我个人的理解:
算法就是解决问题的具体的方法和步骤,所以具有以下性质:

1、有穷性: 一个算法必须保证执行有限步之后结束(如果步骤无限,问题就无法解决)
2、确切性:步骤必须明确,说清楚做什么。
3、输入:即解决问题前我们所掌握的条件。
4、输出:输出即我们需要得到的答案。
5、可行性:逻辑不能错误,步骤必须有限,必须得到结果。

算法通俗的讲:就是解决问题的方法和步骤。在计算机发明之前便已经存在。只不过在计算机发明后,其应用变得更为广泛。通过简单的算法,利用电脑的计算速度,可以让问题变得简单。

譬如:计算 1×2×3×4。。。。×999999999×1000000000
如果人为计算,可想而知,即使你用N卡车的纸张都很难计算出来,即使算出来了,也很难保证其准确性。
如果用VB算法:
dim a as integer
a=1
For i =1 to 1000000000
a=a*i
next i
input a
就这样,简单的算法,通过计算机强大的计算能力,问题就解决了。
关于这段算法的解释:i每乘一次,其数值都会增大1,一直乘到1000000000,这样,就将从1到1000000000的每个数都乘了。而且每乘一次,就将结束赋给a,这样,a就代表了前面的相乘的所有结果,一直乘到1000000000。最后得到的a,就是我们想要的。

〓以下是网络复制过来的,如果你有足够耐心,可以参考一下。

算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。
一个算法应该具有以下五个重要的特征:
1、有穷性: 一个算法必须保证执行有限步之后结束;
2、确切性: 算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
计算机科学家尼克劳斯-沃思曾着过一本着名的书《数据结构十算法= 程序》,可见算法在计算机科学界与计算机应用界的地位。
[编辑本段]算法的复杂度
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
时间复杂度
算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做
T(n)=Ο(f(n))
因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。
空间复杂度
算法的空间复杂度是指算法需要消耗的空间资源。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。
详见网络词条"算法复杂度"
[编辑本段]算法设计与分析的基本方法
1.递推法
递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。它把问题分成若干步,找出相邻几步的关系,从而达到目的,此方法称为递推法。
2.递归
递归指的是一个过程:函数不断引用自身,直到引用的对象已知
3.穷举搜索法
穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从众找出那些符合要求的候选解作为问题的解。
4.贪婪法
贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。
5.分治法
把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
6.动态规划法
动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算机科学和工程领域。
7.迭代法
迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题(一般是解方程或者方程组)的过程,为实现这一过程所使用的方法统称为迭代法。
[编辑本段]算法分类
算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法。
[编辑本段]举例
经典的算法有很多,如:"欧几里德算法"。
[编辑本段]算法经典专着
目前市面上有许多论述算法的书籍,其中最着名的便是《计算机程序设计艺术》(The Art Of Computer Programming) 以及《算法导论》(Introction To Algorithms)。
[编辑本段]算法的历史
“算法”即算法的大陆中文名称出自《周髀算经》;而英文名称Algorithm 来自于9世纪波斯数学家al-Khwarizmi,因为al-Khwarizmi在数学上提出了算法这个概念。“算法”原为"algorism",意思是阿拉伯数字的运算法则,在18世纪演变为"algorithm"。欧几里得算法被人们认为是史上第一个算法。 第一次编写程序是Ada Byron于1842年为巴贝奇分析机编写求解解伯努利方程的程序,因此Ada Byron被大多数人认为是世界上第一位程序员。因为查尔斯·巴贝奇(Charles Babbage)未能完成他的巴贝奇分析机,这个算法未能在巴贝奇分析机上执行。 因为"well-defined procere"缺少数学上精确的定义,19世纪和20世纪早期的数学家、逻辑学家在定义算法上出现了困难。20世纪的英国数学家图灵提出了着名的图灵论题,并提出一种假想的计算机的抽象模型,这个模型被称为图灵机。图灵机的出现解决了算法定义的难题,图灵的思想对算法的发展起到了重要作用的。

⑽ 6×23×25怎么简便算法

按计算器。
算法”一词起源于将 Muhammad ibn Musa al-Khwarizmi的名字拉丁化,这是 算法书的第一步。
所以简便算法要进场。

热点内容
怎样用电脑远程连接拨号服务器 发布:2025-05-10 10:17:44 浏览:466
服务器需要什么系统 发布:2025-05-10 10:17:38 浏览:194
中国电信拍摄脚本 发布:2025-05-10 10:17:00 浏览:457
43魔兽世界POR脚本 发布:2025-05-10 10:06:15 浏览:731
群辉外网访问nas 发布:2025-05-10 10:05:35 浏览:472
ftp记录传输文件 发布:2025-05-10 09:56:53 浏览:560
社保的查询密码是什么 发布:2025-05-10 09:51:49 浏览:619
php获取ip的函数 发布:2025-05-10 09:43:48 浏览:152
金立怎么刷机解锁密码 发布:2025-05-10 09:43:45 浏览:761
陶艺访问学者 发布:2025-05-10 09:43:43 浏览:880