① 算法差理论是谁提出
高德纳(Donald Ervin Knuth)——提出算法理论,图灵奖获得者,程序设计技术的先驱者,Tex和METAFONT的发明人,《计算机程序设计艺术》的作者,他也是个音乐天才,曾一度从事以音乐创作,用信息论分析音乐复杂度。
② 计算机应用基础知识
2017计算机应用基础知识
1.1数据结构与算法
借助于计算机解决问题,首先需要了解所处理对象的性质和特点即所操作对象的数据结构,然后再设计解决问题的方法和步骤即设计一个合理的算法,即通常所说的“程序=数据结构+算法”。
1.1.1算法的基本概念
“算法”(Algorithm)一词最早来自公元9世纪波斯数学家比阿勒·霍瓦里松的一本影响深远的着作《代数对话录》。20世纪的英国数学家图灵提出了着名的图灵论点,并抽象出了一台机器,这台机器被我们称之为图灵机。图灵的思想对算法的发展起到了重要的作用。一般来说,算法是指完成一个任务或解决一个问题所需要的具体步骤和方法的描述。在这里我们说的算法是指计算机能执行的算法。
1.算法分类
计算机算法可分为两大类,一类是数值运算算法,另一类是非数值运算算法。数值运算算法主要是求数值解,如求方程的解、求函数的定积分等,非数值运算的范围则非常广泛,如人事管理、图书检索等。
2.算法特征
一个科学的算法必须具备以下特征:
(1)有穷性:一个算法必须保证执行有限步之后结束,而不能是无限的。这是显而易见的。更进一步说,有穷性是指在合理的范围内结束运算,如果一个算法需计算机执行几百年或更长时间才结束,这显然是不合理的。
(2)确定性:算法的每一步骤必须有确切的定义而不能模棱两可,算法中不能出现诸如“一个比较大的数”等模糊描述。
(3)有零个或多个输入
(4)有一个或多个输出。算法的目的是为了解决问题,一个没有输出的算法是不能解决任何问题因而它是没有意义的.
(5)有效性。算法中的每一个步骤都都应当能有效地执行,并得到确定的结果。例如,若n=0则执行m/n是无法有效执行的。
3.算法表示
一个计算机算法可以用自然语言、流程图、N-S图等来表示。
4.算法分析
算法分析的任务是对设计出的每一个具体的算法,利用数学工具,讨论各种复杂度,以探讨某种具体算法适用于哪类问题,或某类问题宜采用哪种算法。
算法的复杂度分时间复杂度和空间复杂度。
.时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。
.空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。
称O(f(n))和O(g(n))为该算法的复杂度。
1.1.2 数据结构的定义
数据结构是计算机科学与技术领域上广泛被使用的术语。尽管它至今还未有一个被一致公认的定义,但其内容是大家一致公认的。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的'数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。
数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。
一般数据结构可采用下面两类主要的存储方式,大多数数据结构的存储表示都采用其中的一类方式,或两类方式的结合。
1. 顺序存储结构
这种存储方式的主要用于线性数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元内,结点之间的关系由存储单元的邻接关系来实现。
顺序存储结构的主要特点是:(1)结点中只有自身信息域,没有连接信息域,因此存储密度大,存储空间利用率高;(2)可以通过计算直接确定数据结构中第i个结点的存储地址Li,计算公式为Li=L0+(i-1)*m,其中L0为第一个结点的存储地址,m为每个结点所占用的存储单元个数;(3)插入、删除运算不便,会引起大量结点的移动。
2. 链式存储结构
链式存储结构就是在每个结点中至少包括一个指针域,用指针来体现数据元素之间逻辑上的联系。这种存储结构可把逻辑上相邻的两个元素存放在物理上不相邻的存储单元中;还可以在线性编址的计算机存储器中表示结点之间的非线性联系。
链式存储结构的主要特点是:(1)结点中除自身外,还有表示连接信息的指针域,因此比顺序结构的存储密度小,存储空间利用率低;(2)逻辑上相邻的结点物理上不必邻接,可用于线性表、树、图等多种逻辑结构的存储表示;(3)插入、删除操作灵活方便,不必移动结点,只要改变结点中的指针即可。
除上述两种主要存储方式外,散列法也是在线性表和集合的存储表示中常用的一种存储方式。
1.1.3 线性表结构
1.线性表的定义
线性表(Linear List)是最常用并且最简单的一种数据结构。它是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。
① 数据元素的个数n定义为表的长度(n=0时称为空表)。
② 将非空的线性表(n>0)记作:(a1,a2,…,an)
③ 数据元素ai(1≤i≤n)只是个抽象符号,其具体含义在不同情况下可以不同。
在一些比较复杂的线性表中,一个数据元素可以由若干个数据项组成。在这种情况下,一般把数据元素称为记录,含有大量记录的线性表也称为文件。
例1英文字母表(A,B,…,Z)是线性表,表中每个字母是一个数据元素(结点) 例2一副扑克牌的点数(2,3,…,10,J,Q,K,A)也是一个线性表,其中数据元素是每张牌的点数
2.线性表的存储
线性表可采用顺序方式存储和链式方式存储。在各种高级语言中的一维数组就是用顺序方式存储的线性表,因此也常用一维数组来称呼顺序表。下面主要讨论的线性表对象是指顺序表。
3.线性表的基本操作
线性表是一种相当灵活的数据结构,不仅对它的数据元素可以查找访问,它的长度也可以根据需要增大或缩小,即可对线性表进行插入和删除数据元素运算。
常见的线性表的基本运算
(1) InitList(L)
构造一个空的线性表L,即表的初始化。
(2) ListLength(L)
求线性表L中的结点个数,即求表长。
(3) GetNode(L,i)
取线性表L中的第i个结点,这里要求1≤i≤ListLength(L)
(4) LocateNode(L,x)
在L中查找值为x 的结点,并返回该结点在L中的位置。若L中有多个结点的值和x 相同,则返回首次找到的结点位置;若L中没有结点的值为x ,则返回一个特殊值表示查找失败。
(5) InsertList(L,x,i)
在线性表L的第i个位置上插入一个值为x 的新结点,使得原编号为i,i+1,…,n的结点变为编号为i+1,i+2,…,n+1的结点。这里1≤i≤n+1,而n是原表L的长度。插入后,表L的长度加1。
(6) DeleteList(L,i)
删除线性表L的第i个结点,使得原编号为i+1,i+2,…,n的结点变成编号为i,i+1,…,n-1的结点。这里1≤i≤n,而n是原表L的长度。删除后表L的长度减1。具体程序实现可参考本书C语言相关章节。
1.1.4栈与队列结构
1.栈与队列的定义
栈是一种限定仅在表的一端进行插入与删除操作的线性表。允许进行插入与删除操作的这一端称为栈顶,而另一端称为栈底,不含元素的空表称为空栈,插入与删除分别称进栈与出栈。 由于插入与删除只能在同一端进行,所以较先进入栈的元素,在进行出栈操作时,要比较后才能出栈。特别是,最先进栈者,最后才能出栈,而最晚进栈者,必最先出栈。因此,栈也称作后进先出(Last In First Out)的线性表,简称LIFO表。
;③ 算法是谁提出的
图灵。宇宙是个超级计算机。
④ 人工智能决策算法是谁提出的
香农。人工智能决策算法是决策树的生产与决策树的剪枝过程。并且该过程是香农提出的的。并且该过程是非常重要的。
⑤ “prim” 算法 是谁最先提出在那篇着作里面提出来的对现在有什么意义有什么应用最好详细点。谢谢
Prim算法是图论中求最小生成树的一种算法,最早于1930年由捷克数学家Vojtěch Jarník发现;并在1957年由美国计算机科学家Robert C. Prim独立发现,1959年Edsger Dijkstra再次发现了该算法,参见论文:
R. C. Prim. Shortest Connection Networks And Some Generalizations
JOSEPH B. KRUSKAL, JR. ON THE SHORTEST SPANNING SUBTREE OF A GRAPH AND THE TRAVELING SALESMAN PROBLEM
该算法用于求解图的最小生成树,所有可转换为求图的最小生成树的问题的应用均可以应用Prim算法来解决,他本人的论文里也提及了部分应用。
⑥ 如何处理运算教学中算理与算法的关系
一、 《课标》对“数的运算”有什么新要求 新课程标准中明确指出,在数学课程中,应当注重发展学生的运算能力. 运算能力主要是指能够根据法则和运算律正确地进行运算的能力. 培养运算能力有助于学生理解运算的算理,寻求合理简洁的运算途径解决问题.同时在《课标解读》中也强调“应当淡化对运算的熟练程度的要求,选择正确的计算方法,准确地得到运算结果,比运算的熟练程度更重要.应当重视学生是否理解了运算的道理,是否能准确地得出运算的结果,而不是单纯地看运算的速度.”这一目标的提出就要求教师在数的运算教学中,不能仅仅关注于学生运算技能的掌握,更要注重学生理解算例、掌握算法的学习过程,也就是在教学中要注重将算理与算法有机的结合在一起,从而发展学生的运算能力.学习数的运算的过程就是发展逻辑思维能力的过程,数的运算的概念、性质、法则、公式之间都有内在联系,存在着严密的逻辑性.每个概念、性质、法则、公式的引入与建立,都要经过抽象、概括、判断、推理的思维过程.学生学习、理解和掌握“数的运算”内容时都要经过从具体到抽象、从感性到理性的过程,学生把这些应用到实际中去, 还要经过由一般到特殊的演绎过程.因此,数的运算的学习有利于发展学生的思维能力.这就需要教师在教学的过程中不仅仅关注结果、关注方法更要关注得到结果、得到方法的思维过程,这个思维过程就是学生理解算理、掌握算法的过程.小学生仍然以直观形象思维为主,而算理、算法又十分抽象,因此如何结合学生的思维特点处理好运算教学中算理与算法的关系,往往就是教学的难点所在.我们可以结合学生的年龄特点借助生动有趣的童话情境、借助直观模型、借助学生已有的认知基础和生活经验,处理好运算教学中算理与算法的关系.
二、
(一)借助生动有趣的童话情境,处理好运算教学中算理与算法的关系. 小学生,尤其是低年级的学生,他们更多的是以形象思维为主,因此创设生动有趣的童话情境,不仅能够很好地调动他们的学习积极性,更能够借助童话情境帮助他们理解算例、掌握算法.北京小学 魏来红 老师在教学《 20 以内进位加法》一课中,就是为学生创设了学生喜爱的小动物上车的童话情境( PPT ).首先 魏 老师通过让学生在第一站帮助 9 个小动物上车,来复习十加几的口算,学生的积极性一下子就被调动了起来,为他们能够运用学过的知识帮助小动物而感到高兴.接下来再通过第二站帮助 5 个小动物上车,复习连加,并通过追问“有什么好方法能让我们算得又对又快?”使学生感受到先凑“十”再算“十加几”简便快捷,为理解“进位加”的算理做好了孕伏. 5 个小动物上车后,与在第一站上车的 9 个小动物合起来,这时车上一共有多少个小动物?从而引出了 9+5= ?这一进位加法.如何计算 9+5= ?学生结合生动、形象、具体的现实情境,很快就想到把 5 分成 1 和 4 , 1 和 9 组成 10 , 10 加 4 等于 14 .就这样学生在轻松、愉悦的童话情境中,顺利的理解和掌握了进位加的算理与算法.通过这节课我们看到,魏老师正是能够很好的结合学生的年龄和心理需求以及他们的思维特点,创设了学生感兴趣、喜爱的童话情境,使枯燥的数学变得生动有趣,使抽象的算理变得直观形象,使学生在明理中顺利、自然的掌握了算法.
(二)借助直观模型,处理好运算教学中算理与算法的关系. 在皇城根小学史冬梅老师上的《两位数乘两位数》一课中,史老师结合三年级学生的思维特点,借助直观模型较好地处理了算理与算法的关系.史老师在这节课上没有将会写“竖式”作为最终的教学目标,而是在学生已经能够初步掌握竖式计算方法的基础上,引导学生探寻方法背后的道理.并提供给学生直观的点子图作为研究素材,在研究中,学生们呈现了丰富多彩的成果.虽然学生们的分法不完全相同,但“先分后合”的思路是一致的,这一点恰恰就是乘法竖式运算的基本思路.在这之后,史老师再次将分点子图与竖式中的四句口诀进行了对应,引导学生一步步深入地理解竖式计算中每一个细节背后的道理.“分点子图”不仅给学生创造了积累活动经验的宝贵机会,同时又使学生能够借助直观模型,较好的理解了两位数乘法算法背后的道理.在我们以往的教学中,不少老师或者不重视引导学生探索计算的过程,或者当学生刚刚探索出方法后,就立即引导学生学习竖式,在学生对竖式运算的每个环节没有真正理解的情况下就开始追求计算方法.这就很可能造成学生在没有真正理解道理的情况下,只能靠记忆法则来习得方法和技能.这显然对学生的发展是不利的,史老师这节课恰恰是为学生真正地、扎扎实实地经历理解的过程提供了鲜活而典型的案例.在教学中教师要舍得拿出时间让学生有机会经历,有机会感受,有机会理解,有机会创造.新的课程标准中也明确提出了学生活动经验的目标,它背后深远的意义还需要广大教师在自己的实践中开动脑筋,深入挖掘,潜心感悟.
(三)借助学生已有的认知基础和生活经验,处理好运算教学中算理与算法的关系. 北京小学于萍老师曾经上过的《小数加减法》一课,在这节课中于老师就是借助学生已有的认知基础和生活经验,帮助学生理解小数加减法的算理.于老师让学生自主进行编题,其中就有一名学生编出了一道 0.8+3.74= ,这种类型将要揭示的“小数点对齐”是本节课的重点所在,也是小数加减法总结算法的重要时机.为了让学生有机会调动已有的整数加减法的认知经验,经历判断、推理、抽象的思维过程,于老师就让每个学生自己试做,并说明自己这样做的道理.师:你们以前做过很多很多加减法题,无一例外的都是把末位的两个数字对齐,可这道题为什么不末位对齐呢?生:整数的末位是个位,末位对齐也就是个位对齐了.而小数的末位不一定是相同的,所以不能末位对齐.师:你们虽然没把末位对齐,但把谁对齐了?生:把小数点对齐,也就是相同数位对齐.师:你看得很深、很准,这样做肯定有这样做的道理.可为什么一定要小数点对齐、要相同数位对齐呢?生1 :如果不对齐算出来就错了.生2 :如果不把小数点对齐,而把末位对齐的话,十分位的 8 就和百分位的 4 对齐了,相加之后肯定就不对了.生3 :我举个例子说吧,比如买两样东西,一个是 0.8 元,另一个 3.74 元,如果把末位的 8 和 4 相加,就是用 8 角加 4 分,那肯定不对了.师:我们研究同一个问题时可以从不同角度研究,比如,可以讲道理,也可以举例子.刚才这道题,就有同学想到了用我们都熟悉的“元角分”举例子来解释,简单的事说明了深奥的道理,你真棒.看来只有相同计数单位的个数才能够相加减.小结:原来看似和整数加减法不太一样的“小数点对齐”其实和“末位对齐”一样,都是为了确保“相同数位对齐”,而相同数位对齐背后的道理就是“相同计数单位的个数直接相加减”.你们不仅找到了方法,还理解了方法背后的数学道理,真了不起.小数加减法在小学“数与代数”的学习领域中占有什么位置?如何把握它与整数加减法的关系?在这节课中又该如何呈现知识的本质,抓住核心概念进行教学? 于萍 老师的教学实践回答了上面的问题.教师在引导学生探究小数加减法计算方法的过程中,始终抓住了本节课知识的“魂”实施教学,她没有满足学生能正确地计算出结果,而是步步深入引导学生逼近数学本质的理解.引发学生对小数加减计算道理的深刻理解,即:小数加减法与整数加减法的本质意义是一致的,即相同的计数单位相加减.像这样,将“讲理”与“明法”有机的结合,让学生在理解算理的基础上总结算法,有助于学生更深入地理解数学核心概念,才能够更好地 实现“培养学生根据法则和运算律正确地进行运算的能力.”的目标.
三、 对“数的运算”教学的建议
(一)处理好算理直观与算法抽象的关系 .这个理是学生不容易理解的,教师可以通过现实情境、直观的图、学生已有的知识基础等帮助学生去理解.
(二)处理好算法多样化与算法优化的关系 .算法多样化,要关注学生的个性,可能这个学生适合这样的方法,那个学生喜欢另一种方法,但是它们背后的道理是一样的,老师要想办法通过不同的方法,让学生去理解这个道理,使学生能够更有效的进行数学学习.
(三)处理好技能训练与思维训练的关系 .它不是一种单纯的、机械的、做题量的积累,在这个过程当中,要注重帮助学生积累经验,发展思维.
(四)注重计算与日常生活以及解决问题的联系 .
⑦ 数据结构加算法等于程序是由谁提出的
“Algorithm+Data Structures=Programs”是由瑞士计算机科学家尼古拉斯·沃斯在1984年获得图灵奖的一句话。
⑧ 粒子滤波算法是什么时间,由谁最先提出来的啊
1993年有Gordon和Salmond提出了一种新的基于SIS方法的Bootstrap非线性滤波方法,从此奠定了粒子滤波算法的基础。论文:Novel approach to non-linear and non-gaussion Bayesian state estimation.
⑨ 人工智能的决策算法是谁提出的
麦卡锡。人工智能是在1956年达特茅斯会议上麦卡锡首先提出的。该会议确定了人工智能的目标是“实现能够像人类一样利用知识去解决问题的机器”。它的初衷是希望能让机器像人类一样,代替人类完成一些任务。
⑩ A*算法是怎么来的,历史背景是啥,谁提出的A*算法帮帮忙,谢谢!
1968年,的一篇论文,“P. E. Hart, N. J. Nilsson, and B. Raphael. A formal basis for the heuristic determination of minimum cost paths in graphs. IEEE Trans. Syst. Sci. and Cybernetics, SSC-4(2):100-107, 1968”。从此,一种精巧、高效的算法------A*算法横空出世了,并在相关领域得到了广泛的应用。