一句话
一张 0/1 表(关联表)里的记号总数,可以按行加,也可以按列加:
行∑(行和)=记号总数=列∑(列和)
这句话简单到像废话,用起来却极有力:选对“行”和“列”,一边好算、另一边就是我们要的量。这就是算两次(富比尼原理)。
先猜后证
d(j) 表示 j 的正约数个数。d(1)+d(2)+⋯+d(12) 等于多少?
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
35。一个个数约数也行,但按“倍数”数更快:⌊112⌋+⌊212⌋+⋯+⌊1212⌋=12+6+4+3+2+2+1+1+1+1+1+1=35。
例:Σ d(j) = Σ ⌊n/i⌋
第 1 / 4 步 -
画关联表 行是 i=1,…,12,列是 j=1,…,12;i∣j 时画一个点。我们要的 ∑d(j) 就是表中点的个数。
#{(i,j): i∣j, 1≤i,j≤12}
-
按列数
-
按行数
-
两边相等
第 1 站 · 子集族(卷一)
行 = 元素,列 = 子集,“元素属于子集”画点。按列数是 ∑∣A∣,按行数是“每个元素属于几个子集”。
例:{1, 2, 3, 4} 的全部子集的元素个数之和
第 1 / 3 步 -
按列数 每一列是一个子集 A,列和是 ∣A∣。直接加 16 个数有点累。
总数=A∑∣A∣
-
按行数
-
一般地
第 2 站 · 人与小组(卷一)
行 = 人,列 = 小组,“某人参加某组”画点。知道每行的和与每列的和,就能互相推算。
点格子安排 6 个人参加 4 个小组。试着让每人恰参加 2 个组:每组平均几人?两种数法的总数会不会不同?
例:每人恰参加 3 个兴趣小组,每组恰有 6 人;共 40 人,有几个小组?
第 1 / 4 步 -
设未知量 设有 m 个小组。关联表 40 行、m 列。
40×m 的表
-
按行
-
按列
-
相等
第 3 站 · 数列求和与组合恒等式(卷五)
证明恒等式,最漂亮的办法是找一个集合,让等式两边是它的两种数法。
一题多解
证明 (22)+(23)+⋯+(2n)=(3n+1)。
算两次
数 {1,2,…,n+1} 的 3 元子集。一方面有 (3n+1) 个。另一方面按最大元 k+1(k=2,…,n)分类:其余两个元素从 {1,…,k} 中选,有 (2k) 种。两边相等。
代价要想到“按最大元分类”,但想到后一行就完。
数学归纳法
n=2 时两边都是 1。若对 n 成立,则左边加上 (2n+1) 得 (3n+1)+(2n+1)=(3n+2)(帕斯卡公式),对 n+1 成立。
代价机械可靠,但看不出等式“为什么”成立。
第 4 站 · 组合计数估计(卷六)
要估计一个集族最多有多大,就数一种“配对”:一边用条件给出上界,一边用集族的大小表示。
例:{1, …, 7} 的 3 元子集族 𝓕,任两个集合至多有一个公共元素。|𝓕| 最多是多少?
第 1 / 4 步 -
数什么 数“(元素对 {x,y},集合 A)”,其中 {x,y}⊆A∈F。
N=#{({x,y},A): {x,y}⊆A∈F}
-
按集合数
-
按元素对数
-
上界与构造
练一练
求 d(1)+d(2)+⋯+d(10),其中 d(j) 是 j 的正约数个数。
提示 · 方法∑j≤10d(j)=∑i≤10⌊10/i⌋。
提示 · 第一步⌊10/i⌋ 依次是 10,5,3,2,2,1,1,1,1,1。
完整解答和为 27。验算:1+2+2+3+2+4+2+4+3+4=27。
一个年级 50 名同学,每人恰好参加 2 个社团,每个社团恰好有 5 名同学。共有多少个社团?
提示 · 第一步按行:50×2=100;按列:5m。
求 (22)+(23)+⋯+(28)。
提示 · 方法数 {1,…,9} 的 3 元子集,按最大元分类。
完整解答(39)=84。(直接加:1+3+6+10+15+21+28=84。)
{1,2,…,9} 的 3 元子集族中,任两个集合至多有一个公共元素。这样的集族最多有几个集合?
提示 · 方向像第 4 站那样数“(元素对,集合)”。
提示 · 方法3∣F∣≤(29)。再想办法构造达到上界的例子。
提示 · 第一步上界 ∣F∣≤36/3=12。把 1 到 9 排成 3×3 方阵试试。
完整解答方阵 147258369 的 3 行、3 列、以及 6 条“折断的对角线”(如 {1,5,9},{2,6,7},{3,4,8},{3,5,7},{1,6,8},{2,4,9})共 12 个集合,任两个至多交于一点。所以最大值是 12。