容斥原理与鸽巢原理
会用容斥原理数不被整除的数、欧拉函数、满射与有上界的整数解,会用棋盘多项式求有限制的排列,了解二项式反演与 Möbius 反演,会用鸽巢原理证明存在性命题,掌握 Ramsey 数的基本结论。
本节导读
这个单元大纲列了六条:容斥原理、棋盘多项式与有限制排列、一般公式、二项式反演与 Möbius 反演、鸽巢原理、Ramsey 问题和 Ramsey 数。大纲要求掌握「容斥原理和鸽巢原理的应用」。
两个原理的考法很不一样。容斥原理用于计数,题目要你算出一个具体的数,关键是把「具有某性质」的集合设清楚、把交集算对;鸽巢原理用于证明「一定存在」,关键是想清楚什么是鸽子、什么是巢。学完你应该能写出容斥原理的完整计算过程,并能用鸽巢原理写出简短的存在性证明。
容斥原理
设全集有 N 个元素,A1,…,An 是具有各个性质的子集。不具有任何一个性质的元素个数是
∣A1∩⋯∩An∣=N−∑∣Ai∣+∑∣Ai∩Aj∣−∑∣Ai∩Aj∩Ak∣+⋯+(−1)n∣A1∩⋯∩An∣
记成「全部减单个、加两两、减三三……符号交替」。常见的几类应用:
| 问题 | 设法与结果 |
|---|---|
| 1 到 N 中不被 d1,…,dk 中任何一个整除的数 | Ai 是 di 的倍数,交集用最小公倍数:⌊N/lcm⌋ |
| 欧拉函数 φ(n)(1 到 n 中与 n 互素的数) | φ(n)=n∏(1−p1),p 取遍 n 的素因子 |
| 错排数 | Dn=n!∑k=0nk!(−1)k |
| n 元集到 m 元集的满射 | ∑k=0m(−1)kC(m,k)(m−k)n |
| x1+⋯+xn=r 且 0≤xi≤u | 先不管上界,再减去某个 xi≥u+1 的情形,依此类推 |
例如 1 到 600 中不被 6、10、15 中任何一个整除的数:6、10、15 的倍数分别有 100、60、40 个;任意两个的最小公倍数都是 30,三个的最小公倍数也是 30,有 20 个。所以被至少一个整除的有 100+60+40−20−20−20+20=160 个,不被整除的有 440 个。注意交集要用最小公倍数,不能直接把两个数相乘。
棋盘多项式与有限制的排列
把 n 个人分配到 n 项工作,有些人不能做某些工作,这类「有禁区的排列」用棋盘多项式来算。把禁止的格子组成棋盘 B,在 B 上放 k 个互不同行、不同列的棋子(像国际象棋的车,互不攻击)的方法数记作 rk(B),棋盘多项式 R(B)=∑rk(B)xk,r0=1。
求棋盘多项式有两个工具:任取一个格子,R(B)=R(Bi)+xR(Be),其中 Bi 是去掉这个格子、Be 是去掉这个格子所在的行和列;两部分没有公共的行和列时,R(B)=R(B1)R(B2)。有了它,避开禁区的排列数是
N=∑k=0n(−1)krk(B)(n−k)!
例如 4 个人做 4 项工作,第 1 人不做工作 1、2,第 2 人不做工作 2,第 3 人不做工作 3。禁区中前三格只用到第 1、2 行和第 1、2 列,它们的棋盘多项式是 1+3x+x2;第 3 人那一格单独成块,是 1+x。相乘得 R(B)=1+4x+4x2+x3,所以 N=4!−4×3!+4×2!−1×1!=7。
一般公式与反演
设 Sk 是「任取 k 个性质的交集」的大小之和,恰好具有 m 个性质的元素个数为 Nm=∑k=mn(−1)k−mC(k,m)Sk,m = 0 时就是容斥原理本身。
二项式反演:若 f(n)=∑k=0nC(n,k)g(k),则 g(n)=∑k=0n(−1)n−kC(n,k)f(k)。用法是:某个量「按一部分分类」容易写出总数,就用反演把这一部分解出来。Möbius 反演是它在整除关系上的版本:Möbius 函数 μ(1)=1,n 是 r 个不同素数之积时 μ(n)=(−1)r,n 含平方因子时 μ(n)=0;若 f(n)=∑d∣ng(d),则 g(n)=∑d∣nμ(d)f(dn)。
本节后面还有约 1799 字:报名学员看全文
每门课前 10 节免费看全文;从第 11 节起,完整教程要报名后由顾问在后台为你的账号开通才能看。
题库账号可以直接登录,但第 11 节起的完整教程要报名后由后台开通才能看。
学完练一练
按本节考点从本课的课后练习里抽题(每次 10 道以内),做完看解析、错题自动进错题本。第 11 节起的课后练习报名学员才能练。
本节内容由 AI 辅助编写,配图由 AI 生成,仅供备考参考;考试要求以《全国各类成人高等学校招生考试大纲(2024 年版)》及浙江省教育考试院当年公布为准。