![192f64b4d33730cffbc3ddfca519b41d.png](https://i-blog.csdnimg.cn/blog_migrate/7b16be552f97f0f80fb83182ee9667ab.jpeg)
今天给大家推荐几本适合程序员看的数学书。
数学领域涉及的面很广,相关书籍也很多。本次荐书从程序员常用数学知识离散数学、概率统计和线性代数这三大模块,为你推荐相应的书籍,辅助“食用”,事半功倍。
《离散数学及其应用》
Kenneth H·Rosen 著
![7af03cf21324d0613be7e5da599adef1.png](https://i-blog.csdnimg.cn/blog_migrate/397840f5fc1f0930c7f1db3f66316957.jpeg)
这本书有几个特点,我觉得非常好。
1、国外高校的教材。书中对离散数学的知识点介绍得很全面,专栏中讲的同余定理、数学归纳法、递归、分治算法、排列和组合、树和树的遍历、图和最短路径、逻辑以及集合等概念,在书里都有非常详细的介绍。
2、介绍了不少证明的方法,比如穷举证明、存在性证明等,可以让你更好地理解,为什么有些算法是对的,有些是有问题的,并帮你在理解、学习和设计算法时保证其正确性。
3、讲解了很多逻辑、集合和布尔代数的相关知识。这部分我在专栏里没有涉及太多,因为程序员经常接触各种条件和查询语句,对这些内容已经很熟悉了,所以没有花费更多篇幅。
4、和编程结合紧密。书中介绍了一些基于伪代码的算法,并对其进行了时间和空间复杂度的分析,例如常见的排序、搜索算法等,还讲解了离散数学在计算机科学中的应用场景,比如关系型数据库和 SQL 查询语言是如何设计的等等。
《概率统计》
Morris H. DeGroot,Mark J. Schervish 著
![bc4047862dd382a5c4760af6e15dc4d1.png](https://i-blog.csdnimg.cn/blog_migrate/9beefaf3059e0287ebb9b19b5d8852fe.jpeg)
我们再来聊聊这本书的几个特色。
1、对概念的解释非常清晰,比如充分统计量(sufficient statistic)的概念,其他书可能两句话就解释完了,紧接着就是公式的堆砌,而这本书用了差不多两页的篇幅来介绍,对自学者而言非常有帮助。
2、本书的两位作者,DeGroot 和 Schervish 都是贝叶斯统计理论的重量级人物。书中包含了概率论常用的知识点,比如随机变量及其分布、条件概率、期望值、贝叶斯理论、马尔科夫链等。
总的来说,这是一本相当不错的概率统计专业书籍,尽管书中几乎没有涉及计算机算法和代码的部分。
《线性代数及其应用》
David C. Lay,Steven R. Lay 著
如今的机器学习模型,除了基于概率和统计,还会使用线性代数的知识,专栏的第三个模块就是“线性代数篇”。介绍线性代数的书籍不少,我推荐《线性代数及其应用》。
![9ad35af754f10907adbbbba177e721ea.png](https://i-blog.csdnimg.cn/blog_migrate/77f5f6de78819da38a511d1b67d511bf.jpeg)
这本书的特色在于:
1、使用通俗的表达和大量的插图来阐述概念,比如线性方程、向量空间、特征向量、奇异值的分解等,都是在机器学习算法中常用的模型或技术。
2、书中内容的呈现形式,以提出一个具体问题再解决问题为主,最后进行定理的归纳和证明,既通俗易懂,又不乏数学的严谨性。
入门、通识类书籍推荐
《程序员的数学》系列丛书
![21d6d923260b4e97a4706dd9defc94c6.png](https://i-blog.csdnimg.cn/blog_migrate/eaea5102199ad17ace95191b169cabef.jpeg)
再给你推荐一套入门书——《程序员的数学》系列,包括《程序员的数学》《程序员的数学:概率统计》《程序员的数学:线性代数》3 本,内容的讲解不算深入,比较适合编程的初学者。
《数学之美》
吴军 著
![62f469d57cb224a92394488756e27a8a.png](https://i-blog.csdnimg.cn/blog_migrate/06f89e7bd42c59c166db9f9f53404a6d.jpeg)
这本书最大的特点是和计算机领域结合得非常紧密,所有问题和解决方案,最终都会联系到计算机中的某个应用。吴军老师从计算机从业者的角度出发,深入探讨了其背后的数学思想和知识。