做算法需要哪些数学知识?
算法是面向具体问题问题的。御御姐儿摆摆猫就说得很好。此外,如果是计算机专业的学生,多了解下基础算法思维,枚举、搜索、分治、递归、动态规划等是所有算法的根本思想以及其典型应用。
具体看做哪方面的算法。例如:
大数据:需要概率论和数理统计方面的知识。
机器学习:需要线性代数、数值分析、最优化、概率论、随机过程等知识。
密码学:涉及到线性代数、抽象代数、代数几何等。
图形图像处理、视觉分析、游戏引擎:会用到线性代数和空间几何的知识。
其他很多算法可以归到离散数学中,包括图论、组合数学等比较杂的方法。这一类是很有代表性的,很多工程问题不涉及特定的数学知识,而是依靠逻辑,去分析影响问题的因素和环节,针对实际情况做针对性的处理,往往需要列举所有可能场景类别,分别进行考查,或者做一些权衡取舍。典型的就是运筹学里的排队论等各种调度优化算法。
计算机对数学发展的影响是什么?
电子计算机的出现是20世纪最重大的发明,它是数学与电子技术结合的产物。它一出世就对社会各个领域带来无可估量的影响,它的飞速发展反过来也给数学提出新的问题并推动数学的发展。用华中师范大学国家数字化学习工程技术研究中心的彭翕成与张景中教授的话说,计算机正在改变数学。
计算机的出现,促使新的数学分支的诞生计算数学、计算几何、计算机代数、计算复杂性、计算可靠性、机器证明、计算机作图、动态几何……等等与计算机血肉相连的分支应运而生。有些分支在学科上表面已经归于计算机科学,其本质上仍是数学。
计算机的出现,开始改变着人们对数学的看法。出现了数学实验和实验数学。用计算机做实验,发现了大量有趣的数学现象,如分形、混沌、分岔等许多过去想到看不到或者想也想不到的东西。这些东西使数学家大伤脑筋又大开眼界。有人惊呼,数学越来越像实验科学了。
计算机科学就好比是数学科学的孩子。虽然这个孩子长大了,搬出去住了,但身上始终流着母亲的血液,仍然从母亲这里吸取着养料。数学也并没有白养这个孩子。在计算机产生和发展的过程中,数学也同时得到发展。而在计算机发展成熟之后,推动着数学飞速的向前。计算机成为数学研究的工具已是大势所趋,不可阻挡了。
随着计算机的改进以及算法有效性的提高,科学计算已经和理论与实验鼎足而成为科学技术进步的最重要手段之一。许多过去实验和理论无法有效解决的问题,现在已经通过数值计算成为可能,在某些类域中,计算甚至成为日常工作例行工具。最典型的成就是天气数值预报。
计算机一直被认为是数学家最引以为豪的发明。既然现在最好的计算机可以在比赛中打败世界象棋冠军,那么,有理由相信未来的计算机也应该能够解出难倒了最伟大的数学家的数学难题。倘真的有那么一天,母亲绝不会因为孩子的超越而郁闷,而是会为孩子的成就由衷地高兴。
在数理经济学的理论基础上,大规模经济系统的计算也产生许多有效的新方法,其中包括1970年斯梅尔对代数方程求根方法的有效改进以及1967年斯卡夫关于不动点的计算。大规模经济动态模型常常包含成千上万个变元及方程,解这种方程当然非计算机莫属。
一系列计算机计算法程序使计算机的应用大大超过数论、代数之外1975年,沙莫斯在以前丰富的计算几何的结果基础上,正式宣告计算几何学的诞生。这个领域是对于许许多多涉及应用的问题,建立有效的算法,其中最突出的是美国离散数学大师、贝尔实验室数学研究中心负责人格瑞姆在1972年建立的决定平面点集凸包的有效算法,一下子把计算时间从点数n的四次方降到一次方,而且后来证明这是最佳有效算法。这为其后的研究树立一个典范。理论上及实用上这种问题很多,例如,求与给定n点距离之和最近的点,以及钢琴搬运工问题(如何选取最佳路线,通过多边形障碍物)等等都刺激科学家寻求新的有效算法。
我们甚至可以设想到了那一天, 每一个数学家都是计算机高手,而机器证明和人工证明也可以很好地转化;当数学家向杂志投稿时,审稿人会问:你的证明经过计算机验证了吗?那时候,莱布尼茨之梦才算真正实现。数学从此有了王者之路!