关键字:集合论,图论,代数结构,组合数学,数理逻辑
推荐:★★★★★
难度:★★
豆瓣链接:https://book.douban.com/subject/1230394/
说起计算机科学的数学基础,那就非『离散数学』莫属了,
可是我却很晚才知道这件事情。
先是看了SICP上了语法和语义的贼船,
后来,语法上学习了形式语言与自动机理论,
以及lambda演算和编译原理的一些知识。
形式语义看起来比较难,于是回头看了数理逻辑,
看了类型理论,看了范畴论,
意识到抽象代数的重要性了。
然而,这些数学好像和高数没什么联系嘛,
这些数学从哪里来的?
原来,它们是离散数学的内容。
关于离散数学,北大有一系列精品课程,本书是参考书,
本书共分为,集合论,图论,代数结构,组合数学,数理逻辑,五大部分。
把计算机科学的相关数学都教科书般的串讲了一遍。
有几个生疏的概念,例如,自然数理论,序数,
平面图,覆盖集和支配集,格论,布尔代数,
编码理论,直觉主义逻辑,等等,
收获不少,严重找到了差距。
对于建立相关知识体系之间的联系帮助很大,
例如,幺半群和自动机之间的关系,纠错码与组合设计之间的关系,
偏序集与布尔格之间的关系,带权图与组合最优化之间的关系,
图的着色与置换群之间的关系,等等。
这可能就是学习数学的乐趣所在吧,也是分别看其他专著不能学到的。
不过,虽然这本书读起来不算轻松,
但是,本书在广度方面还是略显不足,
很多联系也只限定到了本书内的各章节之间。
比如,集合论中没有提及范畴论,
图论中没有提到红黑树,欧拉公式那里没有提及代数几何,
代数结构那里没有提及线性变换,
数理逻辑没有介绍哥德尔定理。
不过,更多的是,本书优秀的地方,
书中这五个部分都坚持先从高观点下进行介绍,然后才具体落实,
先提纲挈领,再深入细节。
例如,集合论中从关系开始而不是从函数开始,
图论从图开始,而不是从树开始,
代数结构,从一般的代数系统开始,而不是从群开始,
组合数学从子集的划分开始,而不是从排列组合开始,
数理逻辑从形式系统开始,而不是从真值表开始。
每个部分都有深入讲解的内容,在以后遇到的时候,
还可以回过头来参考。
总之,读完本书,收获非常大,值得一试。
对于建立正常生长的知识体系,颇有助益。