第08章 高级计数技术 — 章节汇总

概览

第8章系统介绍了三大高级计数技术:递推关系(Recurrence Relations)、生成函数(Generating Functions)和容斥原理(Inclusion–Exclusion),是第6章基础计数方法的深度扩展。全章首先展示如何用递推关系对实际问题建模(8.1),然后系统讲解常系数线性递推关系的求解方法——特征方程法与待定系数法(8.2);进而将递推关系应用于分治算法的复杂度分析,引入主定理(Master Theorem)(8.3);随后介绍生成函数这一将计数问题转化为幂级数系数提取的强大工具(8.4);最后深入容斥原理的一般公式及其在错排问题、onto 函数计数、欧拉函数计算等经典问题中的应用(8.5-8.6)。全章体现了从”递推建模→系统求解→分治分析→生成函数→容斥计数”的完整知识链条,为算法复杂度分析、组合数学和概率论提供了核心数学工具。


全章知识框架

graph TB
    A["第8章 高级计数技术"] --> B["8.1 递推关系的应用<br/>建模与经典问题"]
    A --> C["8.2 求解线性递推关系<br/>特征方程法"]
    A --> D["8.3 分治算法与递推关系<br/>主定理"]
    A --> E["8.4 生成函数<br/>幂级数与计数"]
    A --> F["8.5 容斥原理<br/>一般公式与证明"]
    A --> G["8.6 容斥原理的应用<br/>错排、onto函数、欧拉函数"]

    B --> B1["递推关系定义与初始条件"]
    B --> B2["斐波那契数列"]
    B --> B3["汉诺塔"]
    B --> B4["位串计数与码字枚举"]
    B --> B5["Catalan 数列"]
    B --> B6["动态规划"]

    C --> C1["线性齐次递推关系"]
    C --> C2["特征方程与特征根"]
    C --> C3["互异根 Theorem 1"]
    C --> C4["重根 Theorem 2"]
    C --> C5["非齐次递推关系 Theorem 6"]
    C --> C6["Binet 公式"]

    D --> D1["分治递推关系 f(n)=af(n/b)+g(n)"]
    D --> D2["递推展开法"]
    D --> D3["主定理三种情况"]
    D --> D4["归并排序 O(n log n)"]
    D --> D5["Strassen 矩阵乘法"]

    E --> E1["常生成函数 OGF"]
    E --> E2["核心幂级数公式"]
    E --> E3["广义二项式定理"]
    E --> E4["计数问题求解"]
    E --> E5["递推关系求解"]
    E --> E6["指数生成函数 EGF"]

    F --> F1["两集合/三集合容斥公式"]
    F --> F2["一般 n 集合容斥原理"]
    F --> F3["基于组合计数的证明"]
    F --> F4["核心恒等式 Σ(-1)^k C(r,k)=0"]

    G --> G1["容斥原理的补集形式"]
    G --> G2["埃拉托斯特尼筛法"]
    G --> G3["onto 函数计数"]
    G --> G4["错排问题 D_n"]
    G --> G5["欧拉函数 φ(n)"]

    B -.->|"建立递推模型"| C
    C -.->|"系统化求解"| D
    C -.->|"另一种求解工具"| E
    B -.->|"计数基础→高级扩展"| F
    F -.->|"理论→应用"| G
    E -.->|"幂级数方法亦可求解容斥问题"| G

    style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
    style B fill:#fff3e0,stroke:#e65100
    style C fill:#e8f5e9,stroke:#2e7d32
    style D fill:#fce4ec,stroke:#c62828
    style E fill:#f3e5f5,stroke:#6a1b9a
    style F fill:#e0f7fa,stroke:#00695c
    style G fill:#fff9c4,stroke:#f57f17

各节核心知识点汇总

小节核心概念关键公式/定理与前后节的关联
8.1 递推关系的应用递推关系建模、初始条件、斐波那契数列、汉诺塔、位串计数、Catalan 数、动态规划全章起点,将实际问题转化为递推模型;为 8.2 提供求解对象;与第5章递归定义直接衔接
8.2 求解线性递推关系线性齐次/非齐次递推关系、特征方程、特征根、通解、特解、Binet 公式;通解 = 齐次通解 + 特解为 8.1 的递推模型提供系统求解方法;为 8.3 分治递推提供理论基础;与第5章数学归纳法验证解的正确性
8.3 分治算法与递推关系分治递推关系、递推展开法、主定理(Master Theorem)、归并排序、Strassen 矩阵乘法;主定理三种情况;归并排序 8.2 的特殊应用场景;与第3章算法复杂度、大O记号紧密关联
8.4 生成函数常生成函数(OGF)、指数生成函数(EGF)、广义二项式定理、幂级数运算递推关系的另一种求解工具(与 8.2 互补);与第6章排列组合、二项式定理紧密关联
8.5 容斥原理一般 集合容斥原理、基于组合计数的证明、核心恒等式$A_1 \cup \cdots \cup A_n
8.6 容斥原理的应用补集形式、埃拉托斯特尼筛法、onto 函数计数、错排问题、欧拉函数;$\phi(n) = n\prod_{pn}(1-1/p)\sum(-1)^{k+1}\binom{n}{k}(n-k)^m$

学习脉络

递推关系的应用(8.1)— 从实际问题(斐波那契、汉诺塔等)建立递推模型,配合初始条件定义序列
  ↓
求解线性递推关系(8.2)— 特征方程法求解齐次递推,待定系数法求解非齐次递推,获得闭式解
  ↓
分治算法与递推关系(8.3)— 将递推关系应用于分治算法复杂度分析,主定理直接判定复杂度阶
  ↓
生成函数(8.4)— 另一种强大工具:将计数/递推问题转化为幂级数运算,提取系数获得答案
  ↓
容斥原理(8.5)— 从两集合/三集合推广到一般 n 集合的容斥公式,完整证明
  ↓
容斥原理的应用(8.6)— 错排、onto 函数、欧拉函数、素数筛法等经典组合计数问题

学习建议:8.1 节是全章的建模起点——务必掌握从实际问题中提取递推关系的方法论:分析递归结构、将第 步分解为互不重叠的若干情况、建立递推公式与初始条件,Catalan 数列是递推建模的经典范例;8.2 节是递推求解的核心——特征方程法是求解线性齐次递推关系的标准方法,需熟练掌握互异根和重根两种情况,非齐次递推的待定系数法需根据 的形式选择特解结构并注意特征根的影响,Binet 公式是特征方程法的精彩应用;8.3 节是算法分析的关键——主定理的三种情况是判断分治算法复杂度的核心工具,建议结合归并排序、二分查找等经典算法加深理解,递推展开法是主定理的补充验证手段;8.4 节是计数方法的飞跃——生成函数将计数问题转化为幂级数系数提取,核心幂级数公式表必须熟记,广义二项式定理是处理非整数指数的关键工具,部分分式分解是从生成函数提取系数的标准技术;8.5 节是容斥理论的完整建立——从两集合到 集合的推广过程体现了数学归纳法的力量,核心恒等式 是证明的关键;8.6 节是容斥原理的实战——错排问题 的公式与概率极限 是高频考点,onto 函数计数与第二类 Stirling 数的关系体现了不同计数方法之间的深层联系,欧拉函数 的容斥推导是数论与组合数学的完美交汇。


跨节综合复习题

综合复习题 1(跨 8.1 / 8.2 / 8.4)

题目: 考虑用 多米诺骨牌完美覆盖 棋盘的方法数 。 (a) 建立 的递推关系与初始条件。 (b) 用特征方程法求 的闭式公式。 (c) 用生成函数方法重新求解,验证结果一致。

综合复习题 2(跨 8.5 / 8.6 / 7.2)

题目: (a) 用容斥原理证明错排公式 。 (b) 计算 的值。 (c) 若将 6 封信随机装入 6 个信封,求恰好没有一封装对的概率。 (d) 证明


笔记索引

小节笔记链接核心主题
8.18.1 递推关系的应用递推关系建模、斐波那契数列、汉诺塔、位串计数、Catalan 数、动态规划
8.28.2 求解线性递推关系特征方程法、线性齐次/非齐次递推关系、通解与特解、Binet 公式
8.38.3 分治算法与递推关系分治递推关系、主定理(Master Theorem)、归并排序、Strassen 矩阵乘法
8.48.4 生成函数常生成函数(OGF)、广义二项式定理、计数问题求解、递推关系求解、指数生成函数(EGF)
8.58.5 容斥原理一般 集合容斥原理、组合计数证明、核心恒等式
8.68.6 容斥原理的应用错排问题、onto 函数计数、欧拉函数、埃拉托斯特尼筛法

高级计数技术