㈠ 学习算法需要什么样的数学基础
具体看做哪方面的算法,普通码农有高数基础就行了,大数据需要概率论和数理统计方面的知识,机器学习需要线性代数、数值分析、最优化、概率论、随机过程等知识,密码学涉及到线性代数、抽象代数、代数几何等,网上这些课程都有。
㈡ 请问有没有与算法有关的数学书籍推荐
你说的算法是编程算法还是机器学习之类的算法呢,前者的话通常不需要什么数学书籍,后者要看的可多了,线性代数、矩阵分析、概率论和数理统计非常重要、离散数学、最优化方法、随机过程等等
㈢ 数学与计算机算法有什么关系
数学是基础学科,有丰富的数学基础可以对理解编程中的逻辑有帮助。
编程对不同的人有不同的意义:
对于一般的程序员就是代码的产出和可运行程序(数学在这里面并不是特别重要,更重要的是对各种框架的理解、熟练掌握、设计模式等)。
对于算法工程师来说,数学就很重要了(例如机器学习,密码学,计算机图形学等,当然这个对题主来说还太遥远)。
题主说的函数实际上就是为了实现目的的一种封装形式,而递归只是在函数中调用自身(当然需要终止条件)。
(3)数学与算法学习文档扩展阅读:
计算机的三个主要特征
1、运算速度快:计算机内部电路能高速准确地完成各种算术运算。当今计算机系统的计算速度已达到每秒数万亿次运算,微机也可达到每秒一亿次运算,使大量复杂的科学计算问题得以解决。例如,计算卫星轨道、大型水坝和24小时的天气可能需要数年甚至数十年,而在现代,用电脑几分钟就可以完成。
2、计算精度高:科学技术的发展,特别是尖端科学技术的发展,对计算精度要求很高。计算机控制的导弹之所以能够准确命中预定目标,与计算机的精确计算是分不开的。一般的计算机可以有十几位甚至几十位数字(二进制)有效数字,其计算精度可以从千分之几到百万分之一,是任何计算工具都无法比拟的。
3、逻辑操作能力强:计算机不仅可以进行精确计算,还具有逻辑操作功能,可以对信息进行比较和判断。计算机可参与操作数据、程序、中间结果和最终结果保存,并可根据判断结果自动执行下一条指令,供用户随时调用。
㈣ 学习高数、离散数学、数据结构和算法的教材与书籍
我是计算机专业大三的学生
大学里面
高数比较流行的是同济的高数教材,绿色的皮,上下2册,现在应该是第6版吧
数据结构最流行的是严蔚敏写的,好像是清华大学出版社的吧
离散数学比较好的是左孝陵写的,上海科学技术文献出版社吧
算法比较通用的是王晓东的计算机算法设计与分析,现在应该有第3版了吧。。(我用的是第2版),电子工业出版社的
学数据结构前你要会一门语言,C,C++,java什么都行。严蔚敏的书是基于C的,也有很多基于JAVA语言的数据结构也很不错
在学离散数学,数据结构之前你还 应该学学线性代数这门课
㈤ 学软件开发需要学习什么知识数据结构和算法与数学有关系吗
数学成绩不好也能学好编程。编程要的解决问题的方法和编程语言的熟练使用,你要先学C语言,是编程入门的 ,我是学这个专业的,我指导你学,我资料里有交流方法
㈥ 学习“数据结构与算法”需要哪些数学基础
你好,数据结构不需要数学基础,要的是基本的理解能力和代码能力,还有就是多思考,数据结构很简单的。
㈦ 与算法有关的数学课程
1. 计算机程序设计的艺术,目前出了三卷,被称为算法的葵花宝典,作者是高德纳--最年轻的图灵奖(计算机领域的诺贝尔奖)获得者。据说他就是因为这本书获奖。
2. 算法导论,算法里面的独孤九剑,MIT教授写的,一般被称为CLRS书,常作为大学教材用。常见算法都有讲
3. 算法I-V,五卷两本书,高德纳的学生(现在也是斯坦福教授)Robed Sedgewick写的,很实用(所有算法都用很短小的程序写出来了)易读,有c,c++和java语言版。很适合程序员。
难度: 1 > 2 > 3
1可以作为兴趣爱好读, 建议读2学习理论,读3学习算法实现。
㈧ 算法和数据结构有什么推荐的入门书籍吗算法的话对数学要求都有哪些
数据结构C语言版-清华大学严蔚敏版 就可以,对数学的要求很简单,会排列组合就行,至于效率的计算等问题在工作中用得很少,只有研究所之类的才用
㈨ 机器学习的算法和普通《算法导论》里的算法有什么本质上的异同
作者:董可人
链接:http://www.hu.com/question/24976006/answer/29682806
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
算法导论里的算法本质上是对有精确解的问题,如何更有效率地求得这个解。这个效率可以是计算时间更短,也可以是计算过程所需要的空间更少。
一个简单的例子是,给定一个乱序数组,如何快速的将其按从小到大的顺序重新排列,或者找到其中的中位数。这些问题都有确定且唯一的答案,一般都会有一个笨方法(穷举或遍历),只要一步一步来就可以解,所谓算法只是如何精简步骤,更快更省事地找到这个解。这些算法处理的数据也都是结构简洁且干净的类型,比如数组,二叉树,图之类的数据结构。数据规模对于这些算法而言,影响的是计算所需的时间和空间,不会因为规模改变而影响算法本身的逻辑以及计算的结果。
机器学习要解决的问题一般没有精确解,也不能用穷举或遍历这种步骤明确的方法找到解,而且需要强调的是“学习”这个属性,即希望算法本身能够根据给定的数据或计算环境的改变而动态的发现新的规律,甚至改变算法程序的逻辑和行为。
举例来说,可以是把一千份文档归类到不同的几个类别里。最简单的可以是给定几个类别,比如新闻,小说,诗歌等,算法来根据文章内容自动划分到对应的类别里。这里可以看出这个问题即使让人做,也有很多模糊不能确定的地方,比如一篇法制晚报上的犯罪纪实是应该划到新闻,还是小说呢?或者说一篇长诗比如荷马史诗是应该归在小说还是诗歌呢?机器学习算法想要解决的,就是根据从文章内容里找到的规律,来自动的给出一个划分。而不同算法可以给出不同的解,这些解都可以是“正确”的,所以一般还需要人为设计一个评判标准来决定孰优孰劣。
也可以不事先给定类别,而是让算法自己去发现文章中的规律,把相似度高的文章划分到一起。这样不同的算法可能给出不同数量的类别划分,可能是三个,四个,或者五个,也都可以是“正确”的划分。甚至什么是“相似度”,不同算法也可以给出不同解释,可以是名词动词形容词的词频及比例,也可以是句子的语法结构等。
更进一步的,你可能还希望这个算法能够用来判断一份新的文档的类别。而输入的新文档越多,也会进一步扩大初始数据集的规模,规模变大以后,原来数据中不明显的规律可能就变明显了。比如说原来一千份文档中只有一篇议论文,可能大多算法都无法把它单独划出一个类别,但当你持续输入一百份议论文后,数据中议论文的比例就变成了101/1100,差不多10%,这时候算法就应该划分出单独的议论文类别。在这个意义上,数据本身也对算法有很大的影响,这也是和算法导论中的算法的一个本质区别。
技术上说,算法导论中的算法关注点在数据结构和计算复杂度,属于离散数学的一个分支,不涉及微积分等高等数学概念。机器学习的算法本身是基于概率,统计和优化(optimization)等理论和技术,从这个角度上说给人感觉更“数学”一点。
在具体的实现细节上,机器学习的算法会大量应用算法导论中的技术来改进计算效率。但需要强调这仅仅是对底层实现来说,在算法本身的逻辑上,二者没有太多联系。换句话说,算法导论中的技术可以帮助你写出更快的程序来运行机器学习算法,但是这对机器学习要解决的问题本身是没有什么帮助的。熟练使用二叉树散列表,准确估算一个图算法的复杂度,都没有任何可能帮助你猜到在女朋友过生日时送什么礼物最好(使用了机器学习算法的淘宝君却很可能知道!)。因此不要把它们看成是搭积木拼构件的关系。
最后,如果以上解释仍然让你费解,那么还有一个更通俗的解释:算法导论是教你如何数数,而机器学习基本上相当于星座算命。一个很机械,一个靠忽悠,差不多就是这样吧。
具体分析见链接:http://www.hu.com/question/24976006