索引 / 001 ZH-CN
Concrete Mathematics: A Foundation for Computer Science(具体数学:计算机科学基础) cover

数学

数学

Concrete Mathematics: A Foundation for Computer Science(具体数学:计算机科学基础)

Ronald L. Graham; Donald E. Knuth; Oren Patashnik

英文原名: Concrete Mathematics: A Foundation for Computer Science

一部讲授算法分析所需数学的教材,融合连续与离散方法。它教授对和式、递归式、二项式系数和生成函数的有控制的操作技巧,风格独特而不拘形式,页边附有学生批注,并配有大量按难度分级、常带历史说明的习题。

需要的基础: 具备微积分以及一门离散数学或程序设计入门课程;本书自成体系,但要求读者有耐心完成冗长的计算。

难度等级
高级
学术层次
本科
discrete mathematicscombinatoricsgenerating functionssums and recurrencesalgorithm analysis教科书

01 / 导读

导读

引用

Graham, R. L., Knuth, D. E., & Patashnik, O. (1994). Concrete Mathematics: A Foundation for Computer Science (2nd ed.). Addison-Wesley.

章节概要

全书共九章,其后是全部习题的解答、参考文献、习题出处说明和索引。前言把这门学科描述为连续数学与离散数学的融合:即运用一系列解题技巧,对数学公式进行有控制的演算。重点在于演算技巧,而不是存在性定理或组合推理。行文轻松随意,页边印有学生的评语(“涂鸦”)以及前辈数学家的引文。

第1章:Recurrent Problems(递归问题)

全书以三个问题开篇:汉诺塔、平面上的直线和约瑟夫问题。每个问题都导出一个递推式,并随后求解。

第2章:Sums(求和)

Σ 记号、和与递推的联系、和式的变换、多重和,以及求和的一般方法。有限微积分与无限微积分、无穷和两节结束本章。

第3章:Integer Functions(取整函数)

向下取整与向上取整及其应用、取整递推、二元运算“mod”,以及含取整的和。

第4章:Number Theory(数论)

整除性、素数、阶乘的因子、互素性、作为同余关系的“mod”、独立剩余、更多应用,以及函数 φ 与 μ。

第5章:Binomial Coefficients(二项式系数)

这是最长的一章。先讲基本恒等式与基本练习、技巧和母函数,再讲超几何函数及其变换,以及部分超几何和。最后是第5.8节“机械求和”,这是第二版的新增内容,前言称其源于 Doron Zeilberger 的想法。

第6章:Special Numbers(特殊数)

Stirling 数、Euler 数、调和数与调和求和、Bernoulli 数、Fibonacci 数,以及连分多项式。

第7章:Generating Functions(母函数)

本章以多米诺骨牌和找零钱两个引例开头,随后讲基本操作、解递推、特殊母函数、卷积、指数母函数和 Dirichlet 母函数。

第8章:Discrete Probability(离散概率)

定义、均值与方差、概率母函数、抛硬币问题,以及散列。

第9章:Asymptotics(渐近分析)

增长率的层级、O 记号及其演算、两个渐近技巧、Euler 求和公式,以及收尾的“最终求和”一节。

核心概念

第1–3章:递推、求和、取整函数

  • 递推式与闭式:用前面的值表示的问题,以及求出不含递归的公式的目标。
  • 有限微积分:针对离散函数的差分与求和演算,与微分和积分相对应。
  • 取整函数:第3章展开其性质并贯穿全书使用的整数值函数。

第4–6章:数论、二项式系数、特殊数

  • 二项式系数恒等式:第5章中大量的恒等式,以超几何函数为统一语言。
  • 机械求和:第5.8节用算法方法判定并证明和式恒等式。
  • Stirling 数、调和数与 Bernoulli 数:在求和与渐近分析中反复出现的特殊数列。

第7–9章:母函数、概率、渐近分析

  • 母函数:编码一个数列的幂级数,用于解递推和计数。
  • 概率母函数:同一工具用于随机变量。
  • O 记号:界定误差项的记号及第9章的演算规则。

评析

优点

  • 目标明确、方法明确。 前言称目标是让读者对离散运算像微积分学生对连续运算那样熟练,全书始终围绕演算技巧。
  • 习题处于核心位置。 前言列出六类共500多道习题(热身题、基础题、作业题、考试题、加分题和研究题),出版社说明除研究题外都附有完整解答,因此适合自学。Allen Stenger 在 MAA Reviews(2010)的书评中称其为有价值的参考书,充满有用的结果,尤其在习题中。
  • 历史与出处。 作者追溯思想的源头,在附录中注明习题来源,并把 Leibniz、Euler、Gauss 的引文穿插在页边。
  • 可读性强的文风。 前言说明,轻松的语气和学生涂鸦是有意的选择,目的是让内容更易消化。

局限

  • 范围有意收窄。 前言指出,本书的主题清单与通常的本科离散数学课程不同;逻辑、图论和证明方法都不在章节之列。
  • 计算要求高。 本书期望读者手工完成冗长的演算,加分题和研究题超出一般课程中普通学生的承受范围。
  • 第二版的改动有限。 第二版新增第5.8节并作了订正;正文本身写于上世纪八九十年代,作者为后来的印次维护勘误表,其中包括一处涉及 Bernoulli 数定义的更正。

在课程中的定位

在本课程书单中,Concrete Mathematics 是最专注于计算技巧的一本。Levin 的开放教材面向初次接触数学推理的学生;Epp 的教材在讲授计算机科学中的离散结构的同时,教学生如何推理和书写论证;Rosen 的教材是涵盖逻辑、证明、计数和图的综合课程用书;Lovász、Pelikán 与 Vesztergombi 的小书从谜题和简单的计数出发,以问题为驱动。其中任何一本都能提供背景,使 Graham、Knuth 和 Patashnik 的书更容易读。

van Lint 与 Wilson 的 A Course in Combinatorics 是研究生层次的综合性教材,以许多短章涵盖图论、设计、编码和有限几何。Graham、Knuth 与 Patashnik 与它互补,因为它集中于求和、递推、母函数和渐近分析,而不是那些结构。

如何使用本书

前言说,这本书源于斯坦福大学的一门课,修课者是三四年级学生,其中多数是研究生,作者也希望能触及二年级学生。书中解释和习题常用到微积分,因此需要熟悉微积分。

  • 核心: 先读第1、2章,然后读第3章,并在时间允许时尽量多读第5、7章。母函数(第7章)是书中最能反复使用的工具。
  • 计算机科学方向: 第8、9章,涉及散列、概率以及分析算法所用的 O 记号。
  • 选读: 如果已熟悉数论,第4章可以略读;第5章的超几何各节(5.5至5.8)可留到第二遍。

初读时试做每章的热身题,认真尝试之后再看答案,并把作业题当作真正的检验。前言明确推荐前两种做法。