代码改变世界

离散数学拾趣(一)

2011-03-04 00:05 by Anders Cui, ... 阅读, ... 评论, 收藏, 编辑

在学习英语的时候,会有一种感受,“记住它”不算是好的方法,也许记住了单词的含义,也许掌握了语法的规则,但是仍然很难用英语来表达自己的想法。这里面的问题在于,没有“用英语去思考”,也就是以英语的方式去掌握它。学习计算机,亦是如此,往往有人说学习一门编程语言只要几天就够了,听到这样的话,我的理解是:你在说它的语法容易理解,真正学好这门语言,当然应该以它应有的方式去写代码。而且,不仅仅是学习编程语言是如此,整个计算机科学的学习都会是这样,应该了解计算机的语言,用它来理解计算机。

计算机的基础是数学,尤其是离散数学。近日在读《离散数学及其应用》(第五版),才体会到离散数学在计算机学习中的重要性,当其中的思想慢慢融入自己的认知,就会发现离散数学悄悄地影响了自己。这本书很厚,达到了800页,但并不难。内容涵盖了集合、逻辑、初等数论、组合数学、离散概率、代数、图论和计算理论等。这本书很“充实”,分类既广,又有大量的例题(超过700)和习题(3500多道),我在扫过一遍后,却饶有兴趣地想去做更多的习题,并对其它相关的数学知识产生浓厚的兴趣。对于一本数学书来说,这是很难得的了。这本书可以说是“实用 ^ 有趣”。

此书可以作为入门,要想更深入地了解,还得去读其它的书,但它的内容却足够应付常见的数据结构与算法分析了。

既然是有趣的,就想收集在阅读中找到的一些题目,它们多数来自书中的例题或习题,也有些来自于其它的书和文章。主要是希望能够对里面的知识有更深的理解和应用。