1.1 容斥原理 Inclusion-Exclusion Principle
容斥原理是处理"至少满足一个条件"的计数问题的核心工具。对于两个集合 A 和 B:
推广到三个集合:
解题步骤:
- 分别计算满足各个条件的数量
- 减去两两交集(被重复计算的部分)
- 加上三者交集(再次被减去的部分加回来)
1.2 鸽巢原理(进阶)Pigeonhole Principle (Advanced)
基本形式:n + 1 只鸽子放入 n 个鸽巢,至少有一个鸽巢里有 ≥ 2 只鸽子。
Basic form: If n+1 objects are placed into n boxes, at least one box contains ≥ 2 objects.
加强形式:
AMC 12 常见应用:
- 数论应用:从 1~2n 中任选 n+1 个数,必有两个数互质(因为相邻整数互质)
- 组合应用:52 张牌中抽 5 张,必有至少两张同花色(5 > 4×1 + 1)
- 抽屉原理:任何 n+1 个整数中必有两个之差是 n 的倍数
1.3 二项式定理 Binomial Theorem
重要推论:
- 求和: C(n,0) + C(n,1) + ... + C(n,n) = 2ⁿ
- 交错和: C(n,0) − C(n,1) + C(n,2) − ... + (−1)ⁿC(n,n) = 0 (当 n ≥ 1)
- 对称性: C(n, k) = C(n, n−k)
- 单项系数: (a + b)ⁿ 展开式中第 k+1 项为 C(n,k)aⁿ⁻ᵏbᵏ(k 从 0 到 n)
2.1 递推关系 Recurrence Relations
递推关系是用前若干项表达第 n 项的等式,是计数问题的强大工具。
解题方法:
- 迭代法:逐步展开,寻找规律
- 特征根法:形如 aₙ = paₙ₋₁ + qaₙ₋₂ 的线性递推,令 aₙ = rⁿ,解特征方程 r² = pr + q
- 构造辅助序列:将非齐次递推转化为齐次递推求解
2.2 常见递推模式 Common Recurrence Patterns
| 名称 | 递推式 | 封闭形式 |
|---|---|---|
| 斐波那契数列 | Fₙ = Fₙ₋₁ + Fₙ₋₂ | Fₙ = (φⁿ − (−φ)⁻ⁿ)/√5(φ = (1+√5)/2) |
| 等比数列 | aₙ = r · aₙ₋₁ | aₙ = a₁ · rⁿ⁻¹ |
| 等差数列 | aₙ = aₙ₋₁ + d | aₙ = a₁ + (n−1)d |
| 卡特兰数 | Cₙ = Σ Cₖ · Cₙ₋₁₋ₖ | Cₙ = C(2n, n)/(n+1) |
斐波那契数列性质:
- F₁ = 1, F₂ = 1, F₃ = 2, F₄ = 3, F₅ = 5, F₆ = 8, F₇ = 13, F₈ = 21 ...
- F₁ + F₂ + ... + Fₙ = Fₙ₊₂ − 1(前 n 项和)
- Fₙ 整除 Fₘ 当且仅当 n 整除 m
卡特兰数 Cₙ 的典型应用:
- 合法括号序列数量
- 二叉树的不同形态数
- 上楼梯(每次 1 或 2 步)的不同路径数(实际上楼梯 Fₙ₊₁)
- 凸多边形的三角剖分数
2.3 生成函数入门 Introduction to Generating Functions
生成函数是将数列的每一项作为多项式系数的高手工具:
为什么有用?复杂计数问题中,乘积的系数往往对应组合数。
基本公式:
- (1 − x)⁻¹ = 1 + x + x² + x³ + ... (等比数列 1, 1, 1, ... 的生成函数)
- (1 − x)⁻² = 1 + 2x + 3x² + 4x³ + ... (等差数列 1, 2, 3, ... 的生成函数)
- (1 + x)ⁿ = Σ C(n, k)xᵏ (二项式定理)
3.1 Pascal恒等式与Vandermonde恒等式 Pascal's and Vandermonde's Identities
Pascal 恒等式的组合意义:从 n 个元素中选 k 个,第 n 个元素要么被选中(对应 C(n−1, k−1)),要么不被选中(对应 C(n−1, k))。
特殊推论:
- 当 m = n, k = n 时:Σ C(n, i)² = C(2n, n)(中心二项式恒等式)
- C(m+n, r) = Σ C(m, k) · C(n, r−k)(标准 Vandermonde)
3.2 双射方法 Bijection Method
双射方法的核心思想是:构造两个集合之间的一一对应,从而证明它们等势(元素个数相等)。
The bijection method shows two sets have the same size by constructing a one-to-one correspondence between them.
经典双射例子:
- 圆上弦与上山路径:n 个点间连弦的问题 ↔ 从 2n−1 中选 n−1 的问题
- 反射原理:路径计数中,满足某种约束的路径数 = 总路径数 − 违反约束的路径数
- 配偶法:将配对问题与组合计数建立一一对应
3.3 母函数方法 Generating Function Method
母函数(也称生成函数)利用多项式乘法来"编码"组合信息:
问题模式:从若干类物品中选取,限制选取个数,求方案数。
典型应用:
- 有限制的整数分拆计数
- 不同面额硬币的找零方案数
- 多重集合的排列数
1~100 的整数中,至少能被 2、3、5 之一整除的数有多少个? How many integers from 1 to 100 are divisible by at least one of 2, 3, or 5?
|3的倍数| = ⌊100/3⌋ = 33
|5的倍数| = ⌊100/5⌋ = 20
|2∩3| = ⌊100/6⌋ = 16 |2∩5| = ⌊100/10⌋ = 10 |3∩5| = ⌊100/15⌋ = 6
|2∩3∩5| = ⌊100/30⌋ = 3
|A∪B∪C| = 50+33+20 − 16−10−6 + 3 = 74
|A∪B∪C| = 50+33+20 − 16−10−6 + 3 = 74.
某上楼梯问题:每次只能走 1 步或 2 步,走上 n 级台阶共有多少种走法(用 Fₙ 表示)?若 F₃ = 3,则 F₅ 是多少? Climbing stairs: 1 or 2 steps at a time. If F₃ = 3, what is F₅?
F₂ = 2(1+1 或 2)
F₃ = 3(1+1+1、1+2、2+1)→ 已知
F₄ = F₃ + F₂ = 3 + 2 = 5
F₅ = F₄ + F₃ = 5 + 3 = 8
F₁=1, F₂=2, F₃=3, F₄=5, F₅=8. This is the Fibonacci sequence shifted by one.
(x − 1)⁵ 的展开式中,x³ 的系数是多少? What is the coefficient of x³ in the expansion of (x − 1)⁵?
x³ 项对应 5−k = 3,即 k = 2
系数 = C(5, 2) × (−1)² = 10 × 1 = 10(正号)
注意:选 x 两次、−1 三次时指数不对;k=2 时为 C(5,2)=10,偶数次方 (−1)² = +1
k=2: C(5,2)·(−1)² = 10·(+1) = 10.
求 Σ C(5, k) · C(7, 3−k) 的值(k 从 0 到 3)。 Evaluate Σ C(5, k) · C(7, 3−k) for k = 0 to 3.
展开验证:k=0: C(5,0)·C(7,3)=1×35=35
k=1: C(5,1)·C(7,2)=5×21=105
k=2: C(5,2)·C(7,1)=10×7=70
k=3: C(5,3)·C(7,0)=10×1=10
总和 = 35+105+70+10 = 165
Direct sum: 35+105+70+10 = 165. Note: Vandermonde gives C(12,3)=220, which is Σ C(5,i)C(7,3−i) for all i=0..3 — but C(7,−1)=0 when 3−i<0, so same result here.
在一个房间里有 5 个人,已知其中任何 4 人中至少有一对互相认识。证明:至少有 1 个人认识所有其他人,并求最少有多少人认识所有人。 In a room of 5 people, any 4 people contain at least one pair who know each other. Prove at least one person knows everyone, and find the minimum number of such people.
考虑任意4人的集合:根据条件,必有一对互相认识。若每人都只认识1人,则4人中最多4条边,找不到认识对的概率很高。
实际上,用反证法:设 A 不认识 B。若有第三人 C 既不认识 A 也不认识 B,则 {B, C, D, E}(4人)中无人认识,矛盾。
所以 A 必然认识除了 B 之外的所有人,且每个人都有一个"唯一不认识的人",形成配对关系。
由于奇数人数 5,必有一人(A)不认识的人数 < 4,即认识所有人。
With 5 people and the condition that every 4 contain a knowing pair, at least 1 person must know everyone. By the pigeonhole principle, the "unknown" relations pair up, leaving one person unpaired — they know everyone.
第1题 用容斥原理求 1~200 中不能被 2、3、5 中任何一个整除的数有多少个。 Using inclusion-exclusion, how many numbers from 1 to 200 are NOT divisible by 2, 3, or 5?
第2题 斐波那契数列 Fₙ 满足 F₁=F₂=1,Fₙ=Fₙ₋₁+Fₙ₋₂,求 F₇。 Given Fibonacci F₁=F₂=1, Fₙ=Fₙ₋₁+Fₙ₋₂, find F₇.
第3题 (2x − 1)⁴ 展开式中 x² 的系数是多少? What is the coefficient of x² in the expansion of (2x − 1)⁴?
第4题 卡特兰数 C₃ 等于多少?(Cₙ = C(2n,n)/(n+1)) What is the 3rd Catalan number? (Cₙ = C(2n,n)/(n+1))
第5题 用鸽巢原理判断:从 1, 2, 3, ..., 10 中任选 6 个数,是否必定有两个数之和为 10?选"是"或"否"。 Using pigeonhole: from {1,...,10}, picking 6 numbers — must there be two that sum to 10?
第6题 已知 Σ C(4,i)² = C(8,4)/2 = 35,验证 Vandermonde 恒等式:求 C(3,0)C(5,3)+C(3,1)C(5,2)+C(3,2)C(5,1)+C(3,3)C(5,0) 的值。 Verify Vandermonde: find C(3,0)C(5,3)+C(3,1)C(5,2)+C(3,2)C(5,1)+C(3,3)C(5,0).