程序员的数学

数学中,体悟到不曾有过的乐趣。与其说是:程序员的数学,不如说是:中学生的数学。

一个“高斯求和”,中学老师都表述的过于晦涩。斐波那契数列,作者用两句话就表述得清楚明白了:1、第n-1天出生的动物,在第n天还活着;2、并且,第n-2天以前出生的动物,在第n天会繁殖1个后代。结合图表示例,作者就将“汉诺塔”问题阐述成了一般性递归。

在说出一句“原来如此”后,我只想向作者献上我的敬意,同时也感谢译者所做出的努力。

逻辑、排列与组合、指数与对数、数学归纳法、递归,这些只是中学时代的数学知识而已,但我们真的已经理解了么?

利用余数,将分散的事物进行分组、归类。基于这条朴素的道理,前人创造了“哈希算法”(首先将数据项的字节序列转化成整数,然后对某数求余)。

正如作者所说的那样——在一般的编程中,程序员通常不需要掌握很深奥的数学知识。我们要做的只是设法缩小问题的规模,通过抽象降低问题的复杂度,达到使程序可解的状态。面对“可数无穷”,要做到不重复不遗漏