例1. 证明: 对于任意$nge 0$和$kge 1$, $x_1+x_2+...+x_k=n$的非负整数解的个数为$inom{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, (1le ile k)$.
可以发现对于所有$1le ile k$, $x_i$都是非负整数, 并且$x_1+x_2+...+x_k=n$, 所以$mu in M(n,k)$, 也就是说$Smapstomu$是$B(n+k-1,k-1)$到$M(n,k)$的函数. 下面我们来说明这个函数是双射.
考虑定义$Smapsto mu$的反函数. 假设$mu$为$M(n,k)$中任意一个元素: $mu=(x_1,x_2,...,x_{k})$, 对于每个$1le ile k-1$, 令$s_i=x_1+x_2+...+x_i+i$. 注意到
$$1le 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: Smapsto mu, g: mu mapsto S$, 为了证明$f$和$g$是双射, 我们还必须验证以下条件:
- $forall Sin 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,...,sumlimits_{i=1}^k (s_{i}-s_{i-1}-1)+k}=S$
$g(mu)={x_1+1,...,sumlimits_{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)-(sumlimits_{i=1}^{k-1}x_i +k-1)-1)=mu$
因此, 我们就证明了$f$和$g$是双射, 又由于$|B(n+k-1,k-1)|=inom{n+k-1}{k-1}$, 故结论成立.
例2. 证明: 对于任意$nge 0$和$kge 1$, $x_1+x_2+...+x_kle n$的非负整数解的个数为$inom{n+k}{k}$.
令$M(n,k)$为所求方程的解集, $B(a,k)$为集合${1,2,...,a}$的所有大小为$k$的子集构成的集合. 我们可以构造映射$f: M(n,k) ightarrow B(n+k,k)$, $f$的定义如下: 对于$M(n,k)$中的一个解$mu=(x_1,x_2,...,x_k)$, 令$f(mu)={s_1,s_2,...,s_k}$, 其中对于每个$1le ile k$, 满足$s_i=x_1+...+x_i+i$. 注意到
$$1le 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=sumlimits_{1le ile k} x_k+k=sumlimits_{1le ile 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)$, 其中对于每个$1le ile k$, 满足$x_i=s_i-s_{i-1}-1$. 可以发现对于所有$1le ile k$, $x_i$都是非负整数, 并且$sumlimits_{1le ile k} x_i=s_k-kle n$. 因此$mu in M(n,k)$. 同时容易验证$f(mu)=S$.
因此, 我们证明了$f$是双射. 由于$|B(n+k,k)|=inom{n+k}{k}$, 故结论成立.
例3. 从${1,2,...,n}$中选出$k$个数, 要求选出的数没有两个数相邻, 求满足条件的选法总数.
首先, 当$n <2k-1$时, 选法数显然是$0$, 下面我们考虑$nge 2k-1$的情况
令$M(n,k)$为所有满足条件的选法的集合,$B(a,k)$为集合${1,2,...,a}$的所有大小为$k$的子集构成的集合. 假设$mu =(x_1,x_2,...,x_k)$为一个选法, 那么必须要满足
$$1le x_1 le n, x_1+1< x_2le n,x_2+1< x_3 le n,...,x_{k-1}+1< x_k le n$$
所以我们可以构造映射$f: M(n,k) ightarrow B(n-k+1,k)$如下: 对于任意$mu =(x_1,x_2,...,x_k) in M(n,k)$, 令$f(mu)={s_1,s_2,...,s_k}$, 其中对于每个$1le ile k$, 满足$s_i=x_i-i+1$, 注意到
$$1le s_1 < s_2-1 < ... < s_k-k+1 le n-k+1$$
因此$f(mu)in B(n-k+1,k)$
易证$f$是双射, 因此$nge 2k-1$时, 选法数为$inom{n-k+1}{k}$.
例4. 圆桌上有$n$个座位, 将数字$1,...,k$依顺时针放到这些座位上(每个座位最多放一个数字), 要求$1$与$2$的座位不相邻, ..., $k-1$与$k$的座位不相邻, $k$与$1$的座位不相邻. 如果两种放置方式可以通过旋转从一种变为另一种, 则视为同一种放置方式, 求满足条件的放置方式总数.
当$n<2k$时, 答案为$0$, 下面考虑$nge 2k$时的答案.
假设$mu =(x_1,x_2,...,x_k)$为一个选法, 由于旋转后相同视为同一种方案, 那么可以假设$a_1=1$. 同时可以得到
$$a_1+1<a_2, a_2+1<a_3,...,a_{k-1}+1<a_k, a_kle n-1$$
也就是
$$3le a_2 < a_3-1 <...<a_{k}-k+2 le n-k+1$$
那么容易构造出所有选法的集合到$B(n-1-k,k-1)$的双射, 因此答案为$inom{n-1-k}{k-1}$.
例5. 正整数$n$可以分解为若干正整数之和, 我们并不关心相加的次序, 这种分解方式称为正整数$n$的划分. 令$g(n,k)$为$n$分为恰好$k$部分的划分的方案数. 求证: 对于任意$nge 2$和$0<kle n$, 都有$g(n,k)=g(n-1,k-1)+g(n-k,k)$.
令$S_{n,k}$为$n$的所有$k$部分的划分的集合, 构造映射$f: S_{n,k} ightarrow (S_{n-1,k-1} cup S_{n-k,k})$, 可以注意到$S_{n-1,k-1}$和$S_{n-k,k}$是不相交的. $f$的定义如下: 对于$S_{n,k}$中任意一个划分$n=n_1+n_2+...+n_k$, 将划分按升序排列, 即$n_1le n_2le ... le n_k$, 令 $$f(n)=egin{cases} n_2+n_3+...+n_k, & if space n_1=1 \ (n_1-1)+(n_2-1)+...+(n_k-1), & otherwise end{cases}$$
可以发现$n_1=1$时, $f(n)in S_{n-1,k-1}$, 否则$f(n)in S_{n-k,k}$.
下面我们证明$f$是双射. 先证$f$是单射, 考虑两个不同的划分$t,s in S_{n,k}$, 满足$f(t)=f(s)$. 令$t=t_1+...+t_{k},s=s_1+...+s_{k}$, 均按升序排列, 那么分四种情况:
- 若$t_1=1,s_1=1$, 那么可以得到$t=1+f(t)=1+f(s)=s$