关于离散数学

以下仅为Avalon_Y的个人观点,与Avalon_Y本人无关
一直被一个问题困扰,如果说没有数据结构和算法,那么程序就什么也没留下,那么为了学习编程是不的需要学习这门课程吗?
百度这个问题基本上是众说纷纭:
最多的官方的说法是离散数学是计算机专业的核心基础课,它在计算机科学中有着重要的应用。它是计算机专业课《数据结构》、《操作系统》、《编译原理》、《数据库系统原理》和《数字逻辑》等课的必备基础,因此离散数学是掌握计算机科学理论基础的重要数学工具。

那么离散数学这么理论化的东西真的对我们有用吗?当然我们举个简单的例子说明一下就好
if a then
if b then x;
else then y;
else
if b then x;
else y;
我们不妨用逻辑学的方法简单分析一下(与和或是用下面的符号吗?+_+):
执行x的条件为
(a&&b)||(!a&&b)=(a||!a)&&b=b
执行y的条件为
(a&&!b)||(!a&&!b)=(a||!a)&&!b=!b
根据这个结论
程序可以优化为
if b then x;
else y;
这样看来似乎很有用,除此之外最小生成树等很多的算法也要用到离散数学的知识啊。 好的我们得出一个结论,我们一定要去学校离散数学啊,赶紧恶补离散数学!
上网易公开课上找找?
哎呦?怎么只有一堆算法 数据结构的,没找到离散数学的公开课啊,再去Youtube上找找,奇怪的是怎么也少的可怜。
这是为什么呐?
我们先来看看离散数学的目录(以高等教育出版社为例)
一 数理逻辑
二 集合论
三 代数机构
四 组合数学
五 图论
六 初等数论
我问了我南开数学系的一位同学,你有学过离散数学吗,他说没有,但是在其他课程中都会包含离散数学的一部分。
反观我们自己,在学习数据结构之前并没有学习过离散数学,但是这并没有影响对于最小生成树算法的理解,没学过数理逻辑,但是我怎么记得自己在概率论的第一章就在这些与啊 并 啊 非啊 里面绕来绕去的….
结论如下:
并非必须专门系统的学习离散数学!!!
并非必须专门系统的学习离散数学!!!
并非必须专门系统的学习离散数学!!!
(受邓超影响,重要的事说三遍)
其实离散数学对于工科学生而已,太过于偏向理科了,而所谓能力的培养,逻辑思维能力真的是看一本书,看一堆的定义,能提高的吗?我觉的有点过于夸张了。
当在算法或是数据结构等方面的学习中遇到需要特定方面的离散数学的知识的时候,再来针对性的学习研究,可能会更适合于打算做工程师的孩子们吧O(∩_∩)O哈哈~

你可能感兴趣的:(程序猿)