double counting 小记

前言: double counting 即算两次,可以对比两次结果得出一些有用的结论。

例1: 求证:

\[\sum_{i=0}^ni \binom{n}{i}=n \times 2 ^{n-1} \]

证明:

考虑计数问题:从 \(\{1,2,3,\dots n\}\) 中选取一个元素 \(a\) 和一个子集 \(A\),要求 \(a \in A\),求方案数。

先取 \(A\) 再取 \(a\),我们根据 \(A\) 的大小分类,显然结果就是等式左边的式子。

先取 \(a\) 再取 \(A\),有 \(n\) 种和 \(2^{n-1}\) 种选法,也就是等号右边。

所以两边是相等的。

例2: \(f_i\) 表示第 \(i\) 个斐波那契数,\(f_0=f_1=1\),求证:

\[\sum_{i=0}^{n-2}f_i=f_n-1 \]

证法1:

数学归纳法,显然 \(n=2\) 时成立。

假设对于所有 \(< k\)\(n\) 都成立,则

\[\begin{aligned} f_k-1 &=f_{k-1}+f_{k-2}-1\\ &=f_{k-2}+\sum_{i=0}^{k-3}f_i+1-1\\ &=\sum_{i=0}^{k-2}f_k \end{aligned} \]

得证。

证法2:

我们考虑有一行 \(n\) 个格子,要用 \(1 \times 1\)\(1 \times 2\) 的卡片不重不漏覆盖,并且不能全都是 \(1 \times 1\),求方案数。

一方面,直接递推可以得到答案是 \(f_{n}-1\)

另一方面,枚举第一个 \(1 \times 2\) 的位置可以得到答案是 \(\sum_{i=0}^{n-2}f_i\)

于是证明了这个式子。

例3:(Cayley 公式)求证:对于 \(n\) 个点的无向完全图,生成树个数为 \(n^{n-2}\)。(生成树指无根树)

证明:

不妨设生成树个数为 \(S_n\)

首先,我们考虑计数:有多少个 \(n-1\) 条边的有向边序列,满足形成一颗有根树(外向)。

第一种方法,我们先选一个无根树,然后再选一个根,这时所有边的方向显然确定,注意我们选的是序列,所以再乘上排列数即可。所有共有 \(S_n \times n \times (n-1)!\) 种,也就是 \(S_n \times n!\)

第二种方法,我们考虑一条一条边加入。

假设当前已经形成了有 \(k\) 个树的森林,我们看下一条边有几种选择。

我们可以随意选择一个点作为出点,由于是外向树,所以入点必然是某个不是自己这棵树的根,所以共有 \(n(k-1)\) 种选法。

我们总共要选 \(n-1\) 次,所以就有 \(n(n-1) \times n(n-2) \times \dots \times 2n \times n\),也就是 \(n^{n-2} \times n!\) 种。

对比两个式子可以得到 \(S_n = n^{n-2}\),证明了 Cayley 公式。

例4: (范德蒙德恒等式)计算:

\[\sum_{i=0}^n\binom{n}{i}^2 \]

解答:

首先,我们有 \(\binom{n}{k}=\binom{n}{n - k}\)

将每个平方项一边改变,就会得到:

\[\sum_{i=0}^n\binom{n}{i}\binom{n}{n-i} \]

考虑组合意义,从 \(1 \sim 2n\) 中选 \(n\) 个数。

一方面,我们分别枚举前 \(n\) 个数和后 \(n\) 个数的选法,显然就是上式。

另一方面,直接组合数就是 \(\binom{2n}{n}\)

所以上式等于 \(\binom{2n}{n}\)

这个等式就是范德蒙德恒等式,它有一个拓展形式:

\[\binom{n_1+n_2+\dots+n_p}{m}=\sum_{k_1+k_2+\dots+k_p=m} \binom{n_1}{k_1} \binom{n_2}{k_2} \dots \binom{n_p}{k_p} \]

证明和上面类似。

例5: 定义一个无向图 \(G = (V,E)\)无三角图(triangle-free graph),当前仅当不存在三互不相同的点 \(u,v,w\),使得 \((u,v),(v,w),(u,w)\) 都属于 \(E\)。(即没有长度为 \(3\) 的环)

求:\(n\) 个点的无三角图最多几条边?

解答:

答案是:\(\frac{n^2}{4}\)(假设 \(n\) 是偶数,奇数相差不大)

构造:显然二分图都是无三角图,所以构造二分图,两边各有一半的点即可。

我们要严格证明这个结论。

不妨设 \(d_u\) 表示 \(u\)\(G\) 中的度数。

观察: \(\forall(x,y) \in E,d_x+d_y \le n\)

证明很简单,如果存在一个点同时连了 \(x,y\) 就会形成三角。

根据这个观察,我们可以知道:

\[\sum_{(x,y)\in E}(d_x+d_y)\le n \times |E| \]

我们看左边的式子,如果以点为单位计数,则显然会等于 \(\sum_{v \in V}d_{v}^{2}\)

由度数基本的性质,我们知道 \(\sum_{v\in V}d_v^2=2|E|\),所以会根据均值不等式,在所有值相等时平方和最小,也就是说:

\[\sum_{v \in V}d_{v}^{2} \ge (\frac{2|E|}{n})^2 \]

结合两个不等式得到:

\[n \times |E| \ge (\frac{2|E|}{n})^2 \]

化简一下就是 \(|E| \le \frac{n^2}{4}\),得证。

例6: 求证:对于无向平面图 \(G=(V,E)\),存在 \(v \in V\),使得 \(d_v \le 5\)

补充:其实对 \(4\) 也可行,这里只证明 \(5\)

证明:

我们考虑反证法,假设所有度数均大于等于 \(6\)

根据平面图欧拉公式,\(V+F=E+2\)\(F\) 是面的个数。

我们先考虑 \(V\)\(E\) 的关系。

通过 doule counting 边的个数会得到:\(3V \le E\)

在考虑 \(F\)\(E\),我们发现,一个面至少三条边,一条边恰好两个面,可以得到:\(3F \le 2E\)

两个不等式相加就可以得到 \(V+F \le E\),但这显然和欧拉公式矛盾,所以命题得证。

例7: 项链计数。

例8: Grid。

posted @ 2024-01-20 13:41  rlc202204  阅读(83)  评论(0编辑  收藏  举报