算法入门(CLRS)书的必备数学技能


30

我已经对基本算法有所了解。现在,我计划研究更多高级算法,并决定继续学习“算法简介”

我不确定,在读这本书之前我是否需要提高数学技能?(我几乎忘记了我在高中和大学学习的数学)如果这本书需要强大的数学知识,请提出一些有益的学科。

我想学习算法的实现,设计和分析。


1
如果您需要的话,这是一个很好的资源来刷新您的技能。khanacademy.org
艾伦·迪

Answers:



9

正如@ user16764所指的参考特定的MIT课程产品(6.042)一样,通常称为离散数学的版本与第一年(大学)水平的微积分相结合,是理解许多(基本)算法及其原理的主要要求。分析。

专门或高级算法可能需要其他或高级数学背景,例如统计/概率(科学和金融程序设计),抽象代数和数论(即用于密码学)。

作为一名学生,我的离散数学课程有Susanna Epp 编写的《离散数学及其应用》教科书,我在图书馆找到的另一本教科书是Kenneth Ross和Charles Wright的《离散数学》。高质量的二手书之一可能是一个不错的起点(根据您的学习风格,是否与MIT开放式课件结合使用)。对于自学,我经常发现有两个参考资料可以帮助阐明我难以理解的要点。

我见过的另一种建议是《具体数学》,由Ronald L. Graham,Donald E. Knuth和Oren Patashnik 撰写的第二版。目前,我找不到我的副本,也没有认真研究它,因此无法提出建议或反对。

从序言:

但是具体数学到底是什么?它是连续和离散数学的融合。更具体地说,它是使用一系列解决问题的技术来控制数学公式。

我将在此博客条目“ Books Programmers'd Really Readed ”中注意到蜥蜴Bill的curmudgeon评论。就我个人而言,我仍然觉得罗伯特·塞奇威克的算法(现在是第4版)不那么令人生畏,而且更容易接近。

关于数学的连续部分(即数部分),斯图尔特的微积分似乎经常被用来向学生讲解微分和积分带来的启发。


6

它本身并不是真正的数学,因为它对数学形式主义是舒适和流利的。学习基本的集合术语和相应的形式主义。

对算法的分析,尤其是在复杂性理论的背景下,您需要在其中研究基本的计算问题(如果您尝试做一些比“ Big-Oh”表示法更重要的事情),确实需要花费大量时间在图论上和抽象的代数,以及大量的先天聪明。


1

除非您担心算法的“分析”,而不仅仅是它们的实现,否则我相信您会很好。在大多数大学课程中,我们课程通常是UD数学或CS课程。

仅了解如何实现该书中的算法就不会有问题


我也想学习算法分析。请给我建议。:)
匿名

@Anonymous在这种情况下,我认为别无选择。我开始自学离散数学,但很快就不知所措,辞职了,尝试着通过编写关于数据结构和算法的“热门”书来尝试简单的出路,却发现真正的交易丢失了。我现在鼓起勇气重新开始。
ankush981 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.