手机游戏巴士

程序员的数学书单

发表于:2024-05-15 作者:游戏编辑
编辑最后更新 2024年05月15日,你好,我是黄申。今天想给你推荐几本适合程序员看的数学书。数学领域涉及的面很广,相关书籍也很多。在专栏中,我从离散数学、概率统计和线性代数三个方面介...

你好,我是黄申。今天想给你推荐几本适合程序员看的数学书。

数学领域涉及的面很广,相关书籍也很多。在专栏中,我从离散数学、概率统计和线性代数三个方面介绍了程序员常用的数学知识。所以,本次荐书我仍然会围绕专栏这三大模块,为你推荐相应的书籍,辅助“食用”,事半功倍。

“基础思想篇”推荐书籍

《离散数学及其应用》

Kenneth H·Rosen 著

专栏的第一模块是“基础思想篇”。在这个模块中,我尝试用实际项目中的案例,把不同的离散数学知识点串起来,并加以解释。如果你对其中某些点有更深的兴趣,可以仔细研读这本书。

除此之外,这本书还有几个特点,我觉得非常好。

1、国外高校的教材。书中对离散数学的知识点介绍得很全面,专栏中讲的同余定理、数学归纳法、递归、分治算法、排列和组合、树和树的遍历、图和最短路径、逻辑以及集合等概念,在书里都有非常详细的介绍。

2、介绍了不少证明的方法,比如穷举证明、存在性证明等,可以让你更好地理解,为什么有些算法是对的,有些是有问题的,并帮你在理解、学习和设计算法时保证其正确性。

3、讲解了很多逻辑、集合和布尔代数的相关知识。这部分我在专栏里没有涉及太多,因为程序员经常接触各种条件和查询语句,对这些内容已经很熟悉了,所以没有花费更多篇幅。

4、和编程结合紧密。书中介绍了一些基于伪代码的算法,并对其进行了时间和空间复杂度的分析,例如常见的排序、搜索算法等,还讲解了离散数学在计算机科学中的应用场景,比如关系型数据库和 SQL 查询语言是如何设计的等等。

“概率统计篇”推荐书籍

《概率统计》

Morris H. DeGroot,Mark J. Schervish 著

在专栏的“概率统计篇”,我会着重介绍概率统计及其在计算机领域中的主要应用。你可以预先阅读这本《概率统计》热热身。

我们再来聊聊这本书的几个特色。

1、对概念的解释非常清晰,比如充分统计量(sufficient statistic)的概念,其他书可能两句话就解释完了,紧接着就是公式的堆砌,而这本书用了差不多两页的篇幅来介绍,对自学者而言非常有帮助。

2、本书的两位作者,DeGroot 和 Schervish 都是贝叶斯统计理论的重量级人物。书中包含了概率论常用的知识点,比如随机变数及其分布、条件概率、期望值、贝叶斯理论、马尔科夫链等。在专栏的第二模块中,我也会介绍这些知识点及其在计算机领域,特别是机器学习中的应用。

总的来说,这是一本相当不错的概率统计专业书籍,尽管书中几乎没有涉及计算机算法和代码的部分,但你不用过于担心,在专栏中我会结合具体的机器学习算法和应用,为你展示这些理论知识是如何运用到实践中的。

如果你能预读本书,对概念有了些理解,再看专栏会更有感触。

“线性代数篇”推荐书籍

《线性代数及其应用》

David C. Lay,Steven R. Lay 著

如今的机器学习模型,除了基于概率和统计,还会使用线性代数的知识,专栏的第三个模块就是“线性代数篇”。介绍线性代数的书籍不少,我推荐《线性代数及其应用》。

这本书的特色在于:

1、使用通俗的表达和大量的插图来阐述概念,比如线性方程、向量空间、特征向量、奇异值的分解等,都是在机器学习算法中常用的模型或技术。

2、书中内容的呈现形式,以提出一个具体问题再解决问题为主,最后进行定理的归纳和证明,既通俗易懂,又不乏数学的严谨性。

入门、通识类书籍推荐

《程序员的数学》系列丛书

再给你推荐一套入门书——《程序员的数学》系列,包括《程序员的数学》《程序员的数学:概率统计》《程序员的数学:线性代数》3 本,内容的讲解不算深入,比较适合编程的初学者。

《数学之美》

吴军 著

这本书最大的特点是和计算机领域结合得非常紧密,所有问题和解决方案,最终都会联系到计算机中的某个应用。吴军老师从计算机从业者的角度出发,深入探讨了其背后的数学思想和知识。这本书的行文风格,对我写作专栏也非常有启发。

推荐专栏





0