留学资讯 一手掌握

学习CS专业需要用到哪些基础算法

时间: 2018-07-04 文章来源: 洋蜜蜂

图片1.png 

离散数学是CS专业的核心基础课程。因为计算机只能处理离散结构数据,所以连续复杂的应用结构只能适当离散化,分散抽象出离散计算模型,计算机才得以处理离散数学可以看成是构筑在数学和计算机科学之间的桥梁,它可以引导人们进入计算机科学的思维领域。今天洋蜜蜂就帮大家来介绍CS专业最基础的数学算法。

离散数学(Discrete mathematics)是研究离散量的结构及其相互关系的数学学科,是现代数学的一个重要分支。离散的含义是指不同的连接在一起的元素,主要是研究基于离散量的结构和相互间的关系,其对象一般是有限个或可数个元素。离散数学在各学科领域,特别在计算机科学与技术领域有着广泛的应用,同时离散数学也是计算机专业的许多专业课程,如程序设计语言、数据结构、操作系统、编译技术、人工智能、数据库、算法设计与分析、理论计算机科学基础等必不可少的先行课程。通过离散数学的学习,不但可以掌握处理离散结构的描述工具和方法,为后续课程的学习创造条件,而且可以提高抽象思维和严格的逻辑推理能力,为将来参与创新性的研究和开发工作打下坚实的基础。

 

图片2.png 

 

 

 

 

可以把离散数学理解为数学和计算机之间的桥梁。计算机本质上是数学的一种通过电、半导体等而实现的应用。 数学的本质,是抽象。而计算机的本质:算法---就是一种抽象。 我们可以不太规范地这样理解:

具体问题------>抽象成一般问题------->算法--------->离散数学因此对于一般人来说,把算法学会就够用了。但对于理论研究人员来说,不够----他们需要把问题上升到离散数学。

 

离散数学最为重要的两个内容:数论 和 图论

图片3.png 

就计算机专业而言,东西虽然比较杂乱,但多少也能发现一点体系。从最基础的证明和集合论(这两部分其实并不是离散数学独有的。高中数学第一课讲的就是『函数是两个集合之间的映射』),到finite field以及一堆余数的应用,再稍微讲一点树和图,最后用unsolvable problem(罗素悖论,判断死循环etc.)结尾,其实是从大家已经有的数学基础开始,慢慢把数学往基础层面的计算机理论上引导。证明和集合论就不说了, 只要是搞偏理论一点的基本上天天用。Finite field/modular arithmetic在加密系统中的运用(比如RSA),树和图在各种算法中的运用,概率论在AI/Machine Learning中的应用,DFT在通信中的应用,每一门往上发展都是upper division里的大课。 而这些东西的基础,都是离散数学。

通过离散数学的学习,不但可以掌握到处理离散结构的工具和办法,为后续的CS课程创造基础条件,还能高抽象思维和严谨的逻辑推理能力。所以要学CS的小伙伴们,离散数学是最基础的一门课,需要花费精力来学好的。如果需要CS辅导的话也可以联系我们咨询,微信:yuff996 洋蜜蜂助你解决学业难题。

图片4.png