为了理解计算机科学的离散数学/结构,人们需要知道多少数学?


9

通常,大学教授离散数学/离散结构。我的问题是,要了解这一领域,一个人需要知道多少数学?是否需要微积分或微积分会好吗?要了解这一领域,需要做一些证明吗?

谢谢大家的答案。

注意:很抱歉,如果已经问过这个问题。经过我的调查,我找不到任何类似的问题。如果您认为是这种情况,请分享已经回答的地方,我很乐意结束/删除此问题。


4
问“我需要多少[数学]理解”对我来说意义不大。你的意思是问哪个数学?从这个意义上讲,您已经回答了您的问题:您将主要需要离散数学,代数和一点数论可能会有所帮助。分析通常是多余的,但有一些例外(渐近,有时会生成函数)。
拉斐尔

意思是在他们开始理解大学为本科生教授的基础离散数学之前,人们需要知道哪些数学领域。初等(高中级代数和三角学)是否足够?以及在准备理解该主题之前是否需要熟悉证明。如有任何混淆,我们深表歉意。
user2387

1
这将取决于国家,学校和老师。在我的大学(以及整个国家的afaik),我们不假设任何(重要的)先验知识。数学教育基本上从零开始(当然,可以假设算术),但是由于学习速度很快,掌握一些先验知识可能会很有用。在这种情况下,请查看特定课程的内容。我认为没有通用有用的答案。
拉斐尔

另外,“了解这一领域”是什么意思?了解足够通过课程吗?够A了吗?足够上课吗?足够做研究吗?足以知道一切吗?
JeffE 2012年

1
我系中的离散数学课程将微积分作为正式的先决条件,但这仅是因为我们假设对高中代数具有绝对的掌握能力。
JeffE 2012年

Answers:


5

通常,大学的课程都有先决条件清单。如果清单上有一些您还没有参加的课程,您应该问教授您是否真的需要这些课程。

离散数学课程在理解它们的实际需求上可能会发生很大变化。您可能需要也可能不需要证明;(一些离散的数学课教您如何做证明)。我猜您可能不需要了解微积分。微积分并不是真正理解离散数学的真正需要,但是如果微积分是全班的前提条件,那么教授可能会使用许多很好的例子和作业问题,而这些问题确实需要微积分。而且,您当然可以讲授要求基本抽象代数作为前提条件的离散数学课程。


2

离散数学包含集合,关系,树,图,布尔代数等,它们是一些概念性主题,而不是微积分。离散数学在编程方面非常有用。


2

我认为答案在某种程度上取决于课程和课程的教学方法(离散数学)。

从肯尼思·罗森(Kenneth Rosen)的书中认为,如果这是一门本科课程,那么除标准数学课程外,通常不需要任何先决条件。我要说的唯一前提条件是对数学的总体理解,基本理解(操作顺序等)。

如果该课程要求更高,并且需要一些基本证明技术,数论概念的知识,那么我认为“抽象代数”课程是一个很好的前提。

我目前正在阅读一本有趣的多佛书- 伊恩·斯图尔特(Ian Stewart)的“ 现代数学概念 ”,这是一个很棒的自学入门(及其他)。

通常,应该读一下集合,证明,布尔代数,状态机和算法的一般知识,以取得良好的开端。


我的经验恰恰相反-离散数学课程是抽象代数的先决条件,但这只是当时我学校课程结构的方式。我认为许多学校都将离散数学作为或多或少的入门或较低级别的课程,但显然并非总是如此。
2012年

1

是否需要微积分或微积分会好吗?

不。微积分处理计算连续曲线上任意点的斜率或计算连续曲线下的面积。由于连续范围(无穷无穷)和离散范围(无穷或无穷无限)是相反的,因此微积分在很大程度上不适用于离散数学。

基础数学课程的一些概念很有用

  • 代数-象征性地对待数量
  • 几何-形式证明
  • 预微积分-基于(可数)无穷级数归纳地指定关系

形式逻辑也很有价值,因为形式逻辑强调归纳和符号思维。一些逻辑(布尔)还处理离散的真值。


1
概括地说,我必须强烈不同意。微积分/分析不仅包含微分和积分,而且有时在离散设置中派上用场。
拉斐尔

@Raphael,也许我的演算时间太久了。您有重叠的例子吗?我在CS之前学习过EE,因此我在微积分方面的实践经验主要是对矢量场的分析,这是我改用CS以来从未使用过的。有时,离散信号分析(例如,Fourier xforms)涉及到脉冲上的积分,但这似乎是切线的,以至于我认为不值得包含在内。
Mike Samuel

渐近是一个明显的例子。我相信积分在处理和和序列时会很有用。此外,生成函数可能是有用的工具。为了真正理解这些,您需要进行复杂的分析。我记得算法类中的一个定理(我不太记得那个定理)已经通过微积分定理证明了,我相信中间值定理。我确实记得那个教授指出,使用真实的分析作为证据比保留离散世界要容易得多。
拉斐尔

1
也就是说,我绝对同意离散数学对计算机科学家更有用。
拉斐尔

1
@Raphael,问题是“在处理离散数学之前,我应该带什么?” 不同于“计算机科学家应该知道什么数学?” 甚至史蒂夫·耶格(Steve Yegge)最坦诚地承认微积分的价值,但我的断言是,它与正交于离散数学的正交关系足够接近,可以按任意顺序解决它们。
Mike Samuel

1

答案取决于您的职业选择和大学课程。

您认为您需要处理声音和音乐吗?那么,有关微积分,幂级数以及甚至更重要的泰勒级数的一些知识是必须的。

您会使用3D引擎吗?也许是与VR相关的东西或某种虚拟仿真机?然后,至少对于第一人称摄影机运动(请参阅四元数组和四元数旋转),至少需要抽象代数(组,场等)。线性代数也是如此。

还是您想在像工程师这样的面向工程师的公司工作?微积分再次是这项工作的要求,线性代数也是。

以上所有都是在数学方面需要一定技能的工作。

如果您更倾向于开发Web /桌面/移动应用程序,则可能不需要太多的数学知识(以防它不是WolframAlpha这样的应用程序)。

您要从事更理论化的职业?然后,您需要对算法(复杂性,优化等)有很好的了解,还需要您提出有效的解决方案,并在部署它们后使其变得更加理想。

您是否希望从事嵌入式编程工作?如果是这样,您还需要了解很多电气工程(DOS等),并且您已经知道,需要一些数学才能理解。

如您所知,在计算机科学和编程方面,数学不是一门学科,但它不应定义您的职业。看看您想在科技界做什么。列出几个您最喜欢的选择。之后,查看选择工作所在领域的出色工作需要哪些数学。也许您不喜欢它们。也许它们对您没那么有趣。如果是这种情况,请移至第二个选择并重复该过程。如果数学更符合您的喜好,那就去做那个工作/领域/部门,把自己踢出去吧!

“ Hello World”中最重要的事情!(pun)是为了使您掌握编码和算法技能。解决一些领域:webdev,embedded等(至少了解它们)。然后,在您选择的领域中学习所需的数学。

希望这能回答您的问题,并且对您有所帮助!

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.