寻找学习理解算法书籍/理论所需数学的途径

时间:2011-05-13 16:27:48

标签: algorithm math

我在大学里已经把所有的东西都拿到了微积分之前,但是当试图通过唐纳德·克努斯的书籍,甚至像这个链接这样的东西: http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree我最终看起来在数学上,这对我来说绝对没有意义。我不是在寻找魔法,我不希望在一周内理解这一点,我只是在寻找一个好的毕业计划来阅读/探索让我在那里。任何指针都是受欢迎的,作为一名专业程序员,经过20多年的努力,我觉得这很好。在此先感谢大家! : - )

8 个答案:

答案 0 :(得分:11)

我实际上建议您到当地大学学习一门离散数学课程。这极大地帮助了我。直到我有了这个,我才明白递归(这是基于数学归纳法。)你将在一个很好的离散数学课程中学到很多其他概念,这些概念非常非常有用(图论,渐近符号,组合学) ...)

我还建议上课。我一直注意到,这使得人们更认真地对待课程,即使它不符合学位路径或任何超过成绩的东西。

如果您当地的大学很好,他们可能会提供辅导课程和办公时间,您可以去咨询问题并获得澄清。这些确实非常有价值,并帮助我以更深刻的方式,更快地学习东西,而不是我自己能够学到的东西。

你可能需要学习微积分以满足先决条件,但如果你想增加数学素养,我也会建议你这样做。这个'答案'至少需要一个学期,更像是两个学期,但我认为这是要走的路。这不是一个直接的解决方案,但如果你在这两个班级中表现良好(并且你附近有一所好大学),你将会在数学上变得更好。

您的个人资料显示您在达拉斯。我找到了this课程(没有先决条件!)。教学大纲看起来像是覆盖了很多好材料,课程在下午5:30开始。 (对劳动人民有益!)。如果他们在下学期提供类似的东西,我会考虑一下。如果你打电话给教练,我相信他很乐意和你谈谈他对夏天和秋季安排的了解。

这条路对我来说效果很好。

祝你好运!

答案 1 :(得分:8)

您可以尝试:http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

这是一个在线提供的pdf版本,您可以轻松地将其谷歌。

我的许多优秀程序员都推荐了它。

答案 2 :(得分:5)

许多才华横溢的程序员在理解算法背后的数学之前先理解算法。数学只是为了帮助,他们不是为了让你理解一切。您将需要花费更多时间阅读算法和复杂性,然后您可能会了解如何评估它们。

我建议你阅读更多有关算法复杂性的书籍。

答案 3 :(得分:3)

在您作为专业程序员的长期经验中,肯定会有您最感兴趣的主题和子域名。我的建议是:识别这些区域并追踪它们。它可能是代码破解,数论,递归,函数式编程,计算折纸,逻辑谜题,晶体结构,图形,遗传算法,样条......

记下你自己的评论:

  但是,当试图通过唐纳德·克努斯的书籍,或甚至   像这样的链接:...我最终看数学意味着   对我来说绝对没有什么

什么样的数学让你着迷?

我可以说Project Euler有很多有趣的谜题。解决编程挑战后,您可以访问一个论坛,其他人分享他们的解决方案,偶尔会参考他们正在使用的一些知识体系。我喜欢它。但重要的是喜欢什么。你自己的兴趣是你学习的关键。

如果数学和编程不再有任何吸引力 - 你不喜欢在业余时间做这些 - 找到其他东西进入:表演,外语,旅行,法国烹饪,骑自行车。谁知道,也许你已经烧光了。

答案 4 :(得分:2)

答案 5 :(得分:1)

与Vincent所说的一致,我推荐来自O'Reilly(here)的 Algorithms in a Nutshell

答案 6 :(得分:1)

在离散数学,微积分和应用数学方面有很多很好的视频讲座。每天晚上看它们,做笔记并尝试解决简单的问题。要为Knuth做好准备,请尝试“Discrete Mathematics”。要深入理解什么是数学以及宇宙中的所有事物是如何相互关联的(包括算法),请尝试“Joy of Mathematics”。

答案 7 :(得分:1)

我正在寻找同样的事情。到目前为止,我买不起这里建议的任何材料,所以这里是YouTube lecture series on Discrete Mathematics的链接。我希望有一个播放列表,但不幸的是没有。

视频是从http://www.aduni.org上传的,要求每个视频捐赠25c以支付运营费用。