一句话
要数集合 A,如果能找到一个一一对应 f:A→B,而 B 好数,那么 ∣A∣=∣B∣。
路径 ⟷ 向上的步的编号组成的子集,∣A∣=∣B∣
配对是它的小兄弟:把对象两两配起来(k 与 n−k,A 与 ∁A,z 与 zˉ),每一对的和或积都相同,总和就一眼看出。对应与配对都要验证两件事:不重(单射)、不漏(满射)。
先猜后证
从 (0,0) 走到 (4,4),每步向右或向上一格,且路径从不走到直线 y=x 的上方(可以碰到)。这样的路径有几条?
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
14 条。所有路径有 (48)=70 条,“坏”路径有 (58)=56 条——为什么恰好是这个数?看下面的翻折。
例:用翻折数“坏”路径(反射原理)
第 1 / 5 步 -
路径就是子集 一条从 (0,0) 到 (4,4) 的路径共 8 步,由“哪 4 步向上”完全决定。所以全部路径有 (48)=70 条。
#路径=(48)=70
-
什么是坏路径
-
翻折
-
为什么一一对应
-
相减
第 1 站 · 映射与计数(卷二)
隔板法是最常用的对应:解 ↔ 隔板的位置。
例:x₁ + x₂ + x₃ + x₄ = 12 有多少组正整数解?
第 1 / 4 步 -
把数变成球 把 12 写成 12 个排成一行的球。一组解就是把这一行从左到右切成 4 段,每段非空。
∘∘∘∣∘∘∣∘∘∘∘∣∘∘∘ ↔ (3,2,4,3)
-
切法就是选空隙
-
验证是一一对应
-
数
第 2 站 · 子集族(卷一)
{1,2,…,n} 的 2n 个子集,把每个子集 A 和它的补集 ∁A 配成一对:∣A∣+∣∁A∣=n。
一题多解
对 {1,2,…,n} 的所有子集 A(含空集),求 ∑∣A∣。
补集配对
2n 个子集恰好配成 2n−1 对(A=∁A 总成立),每对的元素个数之和为 n,所以 ∑∣A∣=n⋅2n−1。
代价一行;只需看出“每对的和都是 n”。
按大小分类
大小为 k 的子集有 (kn) 个,∑∣A∣=∑k=0nk(kn)。用 k(kn)=n(k−1n−1),得 n∑k(k−1n−1)=n⋅2n−1。
代价要算组合数恒等式。
第 3 站 · 数列求和(卷五)
高斯的首尾配对,在组合数求和里同样好用:k 与 n−k 配对,而 (kn)=(n−kn)。
例:求 S = Σ k·C(n, k),k = 0, 1, …, n
第 1 / 3 步 -
倒着再写一遍 把 k 换成 n−k,和不变;再利用 (n−kn)=(kn)。
S=k=0∑n(n−k)(kn)
-
两式相加
-
结果
第 4 站 · 复数的共轭配对(卷四)
实系数多项式的虚根成对出现:z 与 zˉ。每一对的和 z+zˉ=2Rez、积 zzˉ=∣z∣2 都是实数。
例:x⁵ = 1 的四个虚根两两配对
第 1 / 3 步 -
列出根 x5=1 的根是 ωk(k=0,1,2,3,4),ω=cos72∘+isin72∘。ω4=ωˉ,ω3=ω2。
{ω,ω4}, {ω2,ω3}
-
每对配成实二次式
-
比较系数
练一练
方程 x1+x2+x3+x4=10 有多少组正整数解?
提示 · 方法一组解 ↔ 在球之间的空隙里插 3 块隔板。
方程 x+y+z=8 有多少组非负整数解?
提示 · 方向隔板法要求每段非空。怎样把“可以为 0”变成“至少为 1”?
提示 · 方法令 x′=x+1,y′=y+1,z′=z+1。这是一个一一对应。
提示 · 第一步x′+y′+z′=11 的正整数解。
完整解答11 个球有 10 个空隙,选 2 个:(210)=45。
对 {1,2,3,4,5,6} 的所有子集 A,求它们元素个数的总和 ∑∣A∣。
提示 · 方法一共多少对?每对的元素个数之和是多少?
提示 · 第一步26=64 个子集,配成 32 对,每对之和为 6。
完整解答32×6=192,即 n⋅2n−1=6⋅32。
由 5 个“(”和 5 个“)”组成的长度为 10 的串中,括号能正确配对(从左往右读,任何时刻“)”的个数都不超过“(”的个数)的有多少个?
提示 · 方向把“(”看成向右一步,“)”看成向上一步。
提示 · 方法正确配对 ↔ 从 (0,0) 到 (5,5) 且从不走到 y=x 上方的路径。用翻折数坏路径。
提示 · 第一步坏路径翻折后一一对应到终点为 (4,6) 的路径,有 (610)=210 条。
完整解答(510)−(610)=252−210=42。