例1. 证明: 对于任意$n\ge 0$和$k\ge 1$, $x_1+x_2+...+x_k=n$的非负整数解的个数为$\binom{n+k-1}{k-1}$.
令$M(n,k)$为所求方程的解集, $B(a,k)$为集合$\{1,2,...,a\}$的所有大小为$k$的子集构成的集合. 下面我们通过构造一个$M(n,k)$与$B(n+k-1,k-1)$之间的双射来证明结论.
假设$S$为$B(n+k-1,k-1)$中任意一个集合. 我们可以将$S$按照升序排列: $S=\{s_1,s_2,...,s_{k-1}\}$, 其中$s_1<s_2<...<s_{k-1}$. 为了方便起见, 假设$s_0=0,s_{k}=n+k$, 然后构造序列$\mu = (x_1,x_2,...,x_{k})$, 其中$m_i=s_{i}-s_{i-1}-1, (1\le i\le k)$.
可以发现对于所有$1\le i\le k$, $x_i$都是非负整数, 并且$x_1+x_2+...+x_k=n$, 所以$\mu \in M(n,k)$, 也就是说$S\mapsto\mu$是$B(n+k-1,k-1)$到$M(n,k)$的函数. 下面我们来说明这个函数是双射.
考虑定义$S\mapsto \mu$的反函数. 假设$\mu$为$M(n,k)$中任意一个元素: $\mu=(x_1,x_2,...,x_{k})$, 对于每个$1\le i\le k-1$, 令$s_i=x_1+x_2+...+x_i+i$. 注意到
$$1\le s_1 < s_2 < ... < s_{k-1} \le n+k-1$$
因此,$S=\{ s_1, s_2,...,s_{k-1}\} \in B_{n+k-1,k-1}$. 这样也就得到了$\mu \mapsto S$.
令$f: S\mapsto \mu, g: \mu \mapsto S$, 为了证明$f$和$g$是双射, 我们还必须验证以下条件:
- $\forall S\in B(n+k-1,k-1), g(f(S))=S$.
- $\forall \mu \in M(n,k), f(g(\mu))=\mu$.
验证如下:
令$S=\{s_1,...,s_{k-1}\} \in B(n+k-1,k-1), \mu =(x_1,...,x_{k}) \in M(n,k)$
$f(S)=(s_1-s_0-1,...,s_{k}-s_{k-1}-1)$
$g(f(S))=\{s_1-s_0-1+1,(s_1-s_0-1)+(s_2-s_1-1)+2,...,\sum\limits_{i=1}^k (s_{i}-s_{i-1}-1)+k\}=S$
$g(\mu)=\{x_1+1,...,\sum\limits_{i=1}^{k-1}x_i +k-1\}$
$f(g(\mu))=(x_1+1-1,(x_1+x_2+2)-(x_1+1)-1,...,(n+k)-(\sum\limits_{i=1}^{k-1}x_i +k-1)-1)=\mu$
因此, 我们就证明了$f$和$g$是双射, 又由于$|B(n+k-1,k-1)|=\binom{n+k-1}{k-1}$, 故结论成立.
例2. 证明: 对于任意$n\ge 0$和$k\ge 1$, $x_1+x_2+...+x_k$的非负整数解的个数为$\binom{n+k}{k}$.
令$M(n,k)$为所求方程的解集, $B(a,k)$为集合$\{1,2,...,a\}$的所有大小为$k$的子集构成的集合. 我们可以构造映射$f: M(n,k)\rightarrow B(n+k,k)$, $f$的定义如下: 对于$M(n,k)$中的一个解$\mu=(x_1,x_2,...,x_k)$, 令$f(\mu)=\{s_1,s_2,...,s_k\}$, 其中对于每个$1\le i\le k$, 满足$s_i=x_1+...+x_i+i$. 注意到
$$1\le s_1 < s_2 < ... < s_k \le n+k$$
因此$f(\mu) \in B(n+k,k)$.
现在, 我们通过证明$f$是单射和满射来证明$f$是双射. 为了证明$f$是单射, 考虑$M(n,k)$中任意两个不同的解$\mu=(x_1,...,x_k)$, $\eta=(y_1,...,y_k)$, 满足$f(\mu)=f(\eta)$. 我们可以将$f(\mu)$按升序排列为: $\{s_1,...,s_k\}$, 其中$s_1<...<s_k$. 那么也就有$s_1=x_1+1=y_1+1,...,s_k=\sum\limits_{1\le i\le k} x_k+k=\sum\limits_{1\le i\le k} y_k+k$, 因此可以求得$x_1=y_1,...,x_k=y_k$, 即$\mu=\eta$.
为了证明$f$是满射, 考虑$B(n+k,k)$中任意一个集合$S=\{s_1,...,s_k\}$, 其中$s_1<...<s_k$. 为了方便起见, 令$s_0=0$, 构造$\mu=(x_1,...,x_k)$, 其中对于每个$1\le i\le k$, 满足$x_i=s_i-s_{i-1}-1$. 可以发现对于所有$1\le i\le k$, $x_i$都是非负整数, 并且$\sum\limits_{1\le i\le k} x_i=s_k-k\le n$. 因此$\mu \in M(n,k)$. 同时容易验证$f(\mu)=S$.
因此, 我们证明了$f$是双射. 由于$|B(n+k,k)|=\binom{n+k}{k}$, 故结论成立.
例3. 从$\{1,2,...,n\}$中选出$k$个数, 要求选出的数没有两个数相邻, 求满足条件的选法总数.
令$A(n,k)$为所有满足条件的选法的集合,$B(a,k)$为集合$\{1,2,...,a\}$的所有大小为$k$的子集构成的集合.
待更
例4. 圆桌上有$n$个座位, 将数字$1,...,k$依顺时针放到这些座位上(每个座位最多放一个数字), 要求$1$与$2$的座位不相邻, ..., $k-1$与$k$的座位不相邻, $k$与$1$的座位不相邻. 如果两种放置方式可以通过旋转从一种变为另一种, 则视为同一种放置方式, 求满足条件的放置方式总数.