相关笔记: 8.5 容斥原理 | 第09章 关系 — 章节汇总

概览

本节展示了容斥原理在若干经典组合计数问题中的强大应用能力。核心应用包括:容斥原理的补集形式(计算不具有任何性质的元素数)、埃拉托斯特尼筛法(素数计数)、onto 函数的计数错排问题(derangement)以及==欧拉函数 == 的计算。

  • 容斥原理的补集形式
  • 埃拉托斯特尼筛法:用容斥原理计算不超过 的素数个数
  • onto 函数计数定理:从 元集到 元集的 onto 函数有
  • 错排公式,且
  • 欧拉函数 等于不超过 且与 互素的正整数个数
  • 跨章关联:第二类Stirling数 概率论数论

一、知识结构总览

graph TB
    A["8.6 容斥原理的应用"] --> B["补集形式"]
    A --> C["埃拉托斯特尼筛法"]
    A --> D["onto函数计数"]
    A --> E["错排问题 Derangement"]
    A --> F["欧拉函数"]
    A --> G["组合恒等式"]

    B --> B1["N(P1'...Pn') 公式"]
    B --> B2["方程约束解的计数"]
    B --> B3["例:x1+x2+x3=11"]

    C --> C1["不超过n的素数计数"]
    C --> C2["筛除合数因子"]
    C --> C3["例:100以内素数=25"]

    D --> D1["Theorem 1: onto函数公式"]
    D --> D2["与Stirling数的关系"]
    D --> D3["例:工作分配"]

    E --> E1["Dn 的定义"]
    E --> E2["Theorem 2: 错排公式"]
    E --> E3["帽子检查问题"]
    E --> E4["极限 1/e"]
    E --> E5["递推关系"]

    F --> F1["φ(n) 的定义"]
    F --> F2["积性函数性质"]
    F --> F3["容斥原理计算"]

    G --> G1["n! = ΣC(n,k)Dk"]
    G --> G2["Stirling数公式推导"]

二、核心思想

核心思想

本节的核心思想是容斥原理的补集形式(alternative form):在很多计数问题中,我们需要的不是”具有至少一个性质的元素数”(即并集大小),而是”不具有任何性质的元素数”(即补集大小)。通过 ,我们可以将容斥原理转化为补集计数工具。这一转化是本节所有应用的基础——无论是计算方程约束解的个数、素数的个数、onto函数的个数,还是错排的个数,本质上都是在问”不具有某种’坏’性质的元素有多少个”。

1. 容斥原理的补集形式

容斥原理的补集形式

为全集中的元素总数, 个性质。令 表示同时具有性质 的元素个数, 表示不具有任何性质的元素个数。则

直觉理解:从总数中减去具有至少一个性质的元素数(由容斥原理计算),剩下的就是不具有任何性质的元素数。

例1:带约束的方程解的计数

求方程 的非负整数解的个数,其中

:定义性质:(即 ),(即 ),(即 )。

我们需要求 ,即不满足任何”越界”性质的解的个数。

利用第6章 6.5节的”方程非负整数解”方法(等价于”将11个不可区分的球放入3个可区分的盒子”),令 进行变量替换:

  • (总解数)
  • ):令 ,则 ,解数
  • ):令 ,则 ,解数
  • ):令 ,则 ,解数
  • ):,解数
  • ):,解数
  • ):,解数
  • :解数

代入补集形式公式:

2. 埃拉托斯特尼筛法(Sieve of Eratosthenes)

用容斥原理计数素数

第4章介绍了埃拉托斯特尼筛法,本节用容斥原理给出其数学基础。

核心思想:不超过 的合数必有一个不超过 的素因子。因此,不超过 的素数 = 不超过 的素数 + 大于1且不超过 且不被任何不超过 的素数整除的整数。

例:计算不超过100的素数个数

不超过 的素数为 2, 3, 5, 7。定义性质:

  • :被2整除,:被3整除,:被5整除,:被7整除

大于1且不超过100的整数共99个。由补集形式:

因此不超过100的素数共有 个。

3. onto 函数的计数

onto 函数计数定理(Theorem 1)

为正整数且 。则从 元集到 元集的onto 函数共有

个。

证明思路:设到达域为 。定义性质 为” 不在函数的值域中”。一个函数是 onto 的当且仅当它不具有任何性质

  • 总函数数
  • (值域中不含 ,每个自变量有 个选择),共有 个这样的项
  • (值域中不含 ),共有 个这样的项
  • 一般地,,共有 个这样的项

代入补集形式即得公式。

例2:从6元集到3元集的onto函数

例3:工作分配问题

将5个不同的工作分配给4个不同的员工,要求每个员工至少分到一个工作。这等价于求从5元集(工作集)到4元集(员工集)的onto函数数:

onto函数与第二类Stirling数的关系

元集到 元集的onto函数数等于 ,其中 第二类Stirling数

直觉解释:将 个可区分的球放入 个不可区分的非空盒子有 种方式,再对 个盒子赋予标签(排列)有 种方式,因此onto函数数

由此可以反推Stirling数的公式:

4. 错排问题(Derangements)

错排(Derangement)

错排 的一种排列,其中没有任何元素留在其原始位置上。用 表示 个元素的错排数。

:排列 的错排(没有数字在原位),但 不是(4留在原位)。

小规模验证:,错排为

错排公式(Theorem 2)

个元素的错排数为

证明

设性质 为”排列固定了元素 ”()。错排数就是不具有任何性质 的排列数:

由容斥原理的补集形式:

逐项计算:

  • (总排列数)
  • (固定第 个位置,其余 个位置任意排列),共有 个这样的项
  • (固定第 和第 个位置),共有 个这样的项
  • 一般地,,共有 个这样的项

代入得:

利用 ,化简得:

例4:帽子检查问题(The Hatcheck Problem)

一位新员工负责检查餐厅顾客的帽子,但忘记在帽子上做标记。当顾客取回帽子时,检查员从剩余帽子中随机分配。问没有人拿到自己帽子的概率是多少?

:该概率为 ,由错排公式:

234567
0.500000.333330.375000.366670.368060.36786

错排概率的极限

由微积分中的指数函数展开式 ,令

由于这是一个各项趋于零的交错级数,当 增大时,错排概率收敛于 。事实上,该概率与 的误差不超过

这意味着无论有多少人,没有人拿到自己帽子的概率大约都是 36.8%,这是一个非常优美的结果。

错排的递推关系

错排数 满足递推关系:

初始条件:

组合证明:考虑 个元素的错排中第1个元素的位置。它不能在位置1,所以它可以在位置 中的任意一个,共 种选择。假设第1个元素放在位置

  • 情况1:第 个元素放在位置1(两个元素交换),则剩余 个元素需要错排,有 种方式
  • 情况2:第 个元素不放在位置1,则元素 (除第1个外)在位置 中需要形成错排(其中位置1现在”属于”第 个元素),有 种方式

因此

错排的另一递推形式

这可以由显式公式直接验证,也可以由前一递推关系推导。

5. 欧拉函数

欧拉函数(Euler's Totient Function)

欧拉函数 表示不超过 且与 互素的正整数个数。即

欧拉函数在数论和密码学中有重要应用。

用容斥原理计算欧拉函数

的素因子分解。定义性质 为”整数能被 整除”()。则

利用乘法公式,可以化简为:

推导:不超过 且能被 整除的整数有 个(因为 是这些素数的幂的乘积,所以整除)。代入容斥原理的补集形式,再因式分解即得乘积公式。

计算欧拉函数的例子

验证:不超过12且与12互素的正整数为 1, 5, 7, 11,共4个。

验证:1, 7, 11, 13, 17, 19, 23, 29,共8个。

  • 为不同素数)

6. 容斥原理在组合恒等式中的应用

全排列的错排分解

个元素的全排列可以按”恰好固定了 个元素”来分类:

其中 个元素的错排数。

直觉解释:从 个元素中选 个固定位置(有 种选法),其余 个元素形成错排(有 种方式)。对所有 求和即得全排列数

这一恒等式将排列计数与错排计数联系起来,是容斥原理思想的自然推论。


三、补充理解与易混淆点

补充理解

补充1:错排问题的历史——Montmort 的邂逅问题

错排问题有着悠久的历史。1708年,法国数学家 Pierre Raymond de Montmort (1678-1719) 在研究一种叫做”rencontres(邂逅)“的法国纸牌游戏时提出了这个问题:将两副52张的牌分别排成一行,求没有一张牌在同一位置匹配的概率。这个概率正是 ,由错排公式可知其近似值为

错排问题也被称为”derangement problem”或”probleme des rencontres”,是组合数学中最经典的计数问题之一。其解法的优美之处在于:尽管问题看似复杂,但最终的概率竟然趋近于一个与 无关的常数 ,这深刻地揭示了离散数学与连续数学(微积分)之间的内在联系。 来源:Montmort, P. R. de (1708). Essay d’Analyse sur les Jeux de Hazard. Paris: Quillau. 来源:Rosen, K. H. (2019). Discrete Mathematics and Its Applications (8th ed.), McGraw-Hill, Section 8.6.

补充2:容斥原理与第二类Stirling数的深层联系

由 onto 函数计数定理,我们知道:

这给出了第二类Stirling数的一个显式公式:

这一公式在组合数学中极其重要,它将”将 个可区分的球放入 个不可区分的非空盒子”这个看似困难的计数问题,转化为一个可以直接计算的代数表达式。这也解释了为什么第6章在介绍Stirling数时只给出了递推定义而没有给出闭式公式——闭式公式的推导需要容斥原理这一更高级的工具。 来源:Graham, R. L., Knuth, D. E. & Patashnik, O. (1994). Concrete Mathematics (2nd ed.), Addison-Wesley, Section 6.1. 来源:Knuth, D. E. (1997). The Art of Computer Programming, Vol. 3: Sorting and Searching (2nd ed.), Addison-Wesley, Section 5.1.2.

补充3:容斥原理在概率论中的应用

容斥原理的补集形式可以直接推广到概率论中。设 为样本空间中的事件,则

这与第7章中讨论的事件概率公式一致。帽子检查问题的解正是这一推广的直接应用:。当 较大时,这个概率接近 ,这一结果在实际应用中(如随机排序、密码学中的置换分析)有重要意义。 来源:Feller, W. (1968). An Introduction to Probability Theory and Its Applications, Vol. 1 (3rd ed.). Wiley, Chapter IV. 来源:Rosen, K. H. (2019). Discrete Mathematics and Its Applications (8th ed.), McGraw-Hill, Section 8.6.

易混淆点

误区1:混淆"至少一个固定"与"恰好一个固定"

  • ❌ 认为错排公式给出的是”恰好一个元素在原位”的排列数
  • ✅ 错排 是”没有任何元素在原位”的排列数
  • “恰好 个元素在原位”的排列数为 (先选 个固定,其余错排)
  • “至少一个元素在原位”的排列数为

误区2:onto函数公式中 的混淆

  • ❌ 写成 (这是”值域恰好有 个元素”的函数数的错误公式)
  • ✅ onto函数公式中是 ,含义是”从到达域中排除 个元素后,每个自变量有 个选择”
  • 直觉: 表示值域中不包含指定的 个元素

误区3:欧拉函数 的计算范围

  • ❌ 认为 计算的是不超过 的素数个数
  • 计算的是不超过 且与 互素的正整数个数(包括1,但不一定都是素数)
  • 例如 ,对应的整数是 1, 5, 7, 11,其中1不是素数
  • 不超过 的素数个数记为 (素数计数函数),与欧拉函数是不同的概念

四、习题精选

习题概览

题号范围核心考点难度
1-2补集形式的基本应用(苹果、登山申请)⭐⭐
3-4带约束的方程解计数⭐⭐⭐
5-7素数计数、无平方因子数、高次幂⭐⭐⭐
8-10onto函数计数与分配问题⭐⭐⭐
11-12带附加约束的工作分配⭐⭐⭐⭐
13-14错排的计算与概率⭐⭐⭐
15-17错排的变体(信封、座位、偶数位)⭐⭐⭐⭐
18-19错排的递推关系与显式公式⭐⭐⭐⭐
20-21错排的奇偶性与显式推导⭐⭐⭐⭐
22-23欧拉函数 的计算⭐⭐⭐⭐
24-27组合恒等式与全排列分解⭐⭐⭐⭐

题1:补集形式的基本应用

题目

一筐100个苹果中,20个有虫,15个有碰伤。只有既无虫又无碰伤的苹果才能出售。如果有10个苹果同时有虫和碰伤,问这筐苹果中有多少个可以出售?

题2:带约束的方程解计数

题目

方程 有多少非负整数解,其中 均小于6?

题3:onto函数计数

题目

从7元集到5元集有多少个onto函数?

题4:错排的计算

题目

求7个元素的错排数

题5:欧拉函数的计算

题目

为不同的素数,用容斥原理求不超过 且与 互素的正整数个数

解题思路提示

容斥原理应用问题的解题方法论:

  1. 识别性质:将”不希望发生的情况”定义为性质
  2. 确定目标:明确求的是 (补集形式)
  3. 计算各 :利用方程解计数、整除性等工具
  4. 代入公式:注意交替加减的符号
  5. 特殊技巧
    • onto函数:
    • 错排:
    • 欧拉函数:

五、视频学习指南

视频资源

资源链接对应内容备注
Rosen 8e Section 8.6教材原文完整定理与例题英文教材
TrevTutor: Derangements链接错排问题完整讲解英文,含例题
Numberphile: Derangements链接帽子问题与 英文,科普风格
Mathologer: Euler’s totient链接欧拉函数的直觉理解英文,可视化讲解

六、教材原文

教材原文

“Many counting problems can be solved using the principle of inclusion-exclusion. For instance, we can use this principle to find the number of primes less than a positive integer. Many problems can be solved by counting the number of onto functions from one finite set to another.”

“A derangement is a permutation of objects that leaves no object in its original position. The well-known hatcheck problem can be solved using the principle of inclusion-exclusion. This problem asks for the probability that no person is given the correct hat back by a hatcheck person who gives the hats back randomly.”

“By the identity for all real numbers (from calculus), we know that .”


参见 Wiki

高级计数技术