理解算法的先决条件是什么?

4
学习算法需要哪些数学基础?
在学习算法之前,需要掌握哪些数学知识呢?

你掌握的数学知识越多,你就越好,但这并不是先决条件。更重要的是,这不是适合在 SO 上提问的问题。 - PengOne
哪个算法?可能是冒泡排序,不过没什么了不起的。如果不用循环计算第N个质数,可能需要大学微积分的知识。 - Mike Christensen
我不知道是否可能,但如果可以的话,我认为需要数学博士学位 :) - Mike Christensen
是的,我同意其他反馈意见。数学很重要,尤其是如果你想深入了解事物运作的方式,更多的数学知识会更有帮助。当然,这也取决于你想走多远;比如说,视频游戏引擎需要各种高级数学知识。 - Mike Christensen
3
数列、级数、极限和归纳证明是进行算法分析所需的数学教育中的关键部分。这些主题通常在高中预备数学或大学高等代数课程中涵盖。 - Adrian McCarthy
2个回答

6
我想这取决于你想使用的算法类型以及你想要多深入地了解它们。
大多数基本数据结构的理解几乎不需要数学背景。
大多数图形算法需要了解三角学和空间几何知识。
如果您想要编写物理引擎算法,那么如果您具有一些物理学基础,理解起来会更容易。
如果您希望您的程序帮助您做出决策,您可能需要学习运筹学,这是数学的一个非常庞大的子领域,包括图论、博弈论、优化(然后包括分析和线性代数)。
无论如何,具备逻辑/数学思维显然对理解和检查/证明代码是否可行非常有帮助。

2
如果你在谈论简单的编程,那么你不需要太多的数学知识。在这个水平上,你的问题解决和逻辑能力更加重要,但是使用流程图和过程规划了解问题解决的基础是必要的。
另一方面,数学被认为可以提高你的能力,在某些领域中,你需要了解数学才能达到预期的结果。例如,要创建一个动画引擎,了解线性代数和物理学就非常有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接