Skip to content

程序员的数学 ​

返回分类书单

分类:计算机与软件工程 / 数据结构、算法与软件设计

书籍简介 ​

本页以结城浩的《程序员的数学》为候选书目介绍。它通过日常问题和小型谜题解释编程常用的数学思维,适合希望补足逻辑、计数和证明基础,却暂时不想从高强度公式推导开始的读者。

重点不是背更多公式,而是理解为什么某种表达能减少遗漏:如何完整划分情况,如何证明循环一直保持某个性质,以及如何通过递归把大问题拆成同类小问题。

版本说明 ​

中文版作者与版次待确认。 当前书单没有 ISBN;下表依据结城浩官网公开的日文第2版目录整理,共 9 章主体,另列附录。官网注明第2版新增机器学习入门附录,因此不能把这一附录自动认定为手中中文版本的内容。中文章名为本站译述。

作者与背景 ​

本页参考作者为结城浩(Hiroshi Yuki),中文实物版本仍待确认。作者官网列有《数学女孩》、程序员数学、密码技术与程序设计等作品,并公开本书日文第2版目录与勘误。其优势是面向读者解释抽象概念的写作经验,不能据此将本书当作完整的大学数学课程。

目标读者 ​

适合会写条件和循环、却对证明、计数与递归缺少信心的程序员。无需先补完整高等数学;目标为算法理论或机器学习推导的读者,应把它作为思维入门,再进入专题教材。

章节介绍 ​

参考版本章节核心内容
第1章 0 的故事从十进制、二进制与位值制理解 0 的作用,认识表示方法如何影响思考。
第2章 逻辑使用真假、逻辑运算和德摩根定律,讨论分类的穷尽性与互斥性。
第3章 余数从周期与分组问题出发,学习利用余数表达重复规律。
第4章 数学归纳法用基础情形和归纳步骤建立证明,并联系循环不变量。
第5章 排列与组合通过计数法则、排列和组合减少逐项枚举,检查重复计算与遗漏。
第6章 递归用汉诺塔、阶乘和斐波那契数列理解自我定义与终止条件。
第7章 指数爆炸比较指数增长、二分查找和对数,认识规模如何迅速改变问题难度。
第8章 无法计算的问题通过反证、可数性和对角线方法进入停机问题,理解计算能力的边界。
第9章 程序员的数学是什么回顾问题求解中的结构化思考,将数学方法连接到日常编程。
附录1 迈向机器学习的第一步日文第2版增加的入门内容,介绍预测、分类、感知机与学习过程。
附录2 阅读指南提供进一步阅读的方向;实际中文版本的书目与编排需另行核对。

读后感 ​

以下为本站阅读评析,用可实践的阅读目标表达收获,不代表书单提供者已经读完、任职或完成相应项目。版本未明时,评析只针对本页明确标注的主题或参考版本。

金句摘抄或阅读提炼 ​

把“应该如此”写成可以检查的陈述,就是数学进入代码的起点。

这是本站原创阅读提炼,不是原书引文;没有可核对页码的原文不作逐字摘抄。

个人收获 ​

给一个循环写出初始化、每轮保持的性质与结束条件,再用数学归纳法对应这三部分。还可以为权限分支做真假表,检查是否穷尽且互斥;这些动作能直接帮助发现遗漏,而不依赖复杂公式。

客观评价与阅读建议 ​

谜题和图示适合降低心理门槛,但不能替代离散数学、概率或线性代数的系统训练。候选日文第2版的机器学习附录只是入门,不应据此期待掌握训练算法;中文是否收录仍需核对。

推荐语(本站原创,非原书引用): 推荐给“会写代码却怕数学”的读者:先把逻辑和归纳用进一个小程序,兴趣往往来自能解释自己的结果。

来源与核对入口 ​

继续阅读