【大二病也要学离散!】第十章 基本的组合计数公式
今天来看第十章,基本的组合计数公式
相当于是高中数学选择性必修三的拓展
10.1 加法法则和乘法法则
加法法则与乘法法则的定义
加法法则:任何两个事件不重叠
乘法法则:任何两个事件彼此独立
例10.1.1 设\(A\)是\(n\)元集,问:
(1) \(A\)上的自反关系有多少个?
(2) \(A\)上的对称关系有多少个?
(3) \(A\)上的反对称关系有多少个?
(4) \(A\)上的函数有多少个?其中双射函数有多少个?
答案:
(1) \(2^{n^2-n}\)
(2) \(2^{\frac{n^2+n}{2}}\)
(3) \(2^n \cdot 3^{\frac{n^2-n}{2}}\)
(4) \(n^n,n!\)
10.2 排列与组合
排列和组合的定义:
设\(S\)为\(n\)元集,从\(S\)中有序选取的\(r\)个元素称作\(S\)的一个\(r\)排列.\(S\)的不同\(r\)排列总数记作\(P_n^r,r=n\)时的排列称作\(S\)的全排列.从\(S\)中无序选取的\(r\)个元素称作\(S\)的\(r\)组合.\(S\)的不同\(r\)组合总数记作\(C_n^r.\)
排列数和组合数的公式、
\(C_n^r\)通常被称作二项式系数,有时也记作\(\dbinom{n}{r}.\)
对于\(S,\)其\(r\)环排列数为\(\frac{P_n^r}{r}.\)
组合数的性质:
(1) \(C_n^r=\frac{n}{r}C_{n-1}^{r-1}.\)
(2) \(C_n^r=C_n^{n-r}.\)
(3) \(C_{n}^{r}=C_{n-1}^{r-1}+C_{n-1}^{r}.\)
注意:(3)与杨辉三角有关,也称作帕斯卡公式.
我们引入多重集的概念,多重集\(S=\{n_1 \cdot a_1,n_2 \cdot a_2,\ldots,n_k \cdot a_k\},\)其中\(a_1,a_2,\ldots,a_k\)是\(k\)种不同的元素,\(n_i\)表示\(a_i\)在\(S\)中出现的次数,称作\(a_i\)的重复度.当\(n_i=+\infty\)表示有充足的\(a_i\)备选.多重集的子集也是多重集,\(A=\{x_1 \cdot a_1,x_2 \cdot a_2,\ldots,x_k \cdot a_k\},0 \le x_i \le n_i.\)其中\(x_i=0\)表示\(a_i\)不存在于\(A\)中.
设\(S=\{n_1 \cdot a_1,n_2 \cdot a_2,\ldots,n_k \cdot a_k\}\)为多重集,\(n=n_1+n_2+\ldots +n_k\)为\(S\)中元素的总数.则从\(S\)中有序选取的\(r\)个元素称作多重集\(S\)的一个\(r\)排列,\(r=n\)的排列称作\(S\)的全排列.从\(S\)中无序选取的\(r\)个元素称作\(S\)的一个\(r\)组合.
我们给出某些特殊情况的公式,一般的计数只能通过生成函数或者包含排斥原理来求解,我们在下一章介绍相关知识.
(1) \(S\)的全排列数为\(\frac{n!}{n_1!n_2!\ldots n_k!}.\)
(2) 若\(r \le n_i,\)则\(S\)的\(r\)排列数为\(k^r.\)
(3) 若\(r \le n_i,\)则\(S\)的\(r\)组合数为\(C_{k+r-1}^r.\)
有关(3),我们对不定方程\(x_1+x_2+\ldots +x_k=r,x_i\)为非负整数进行讨论,最后得出有关结论.具体证明见书.
给出两个运用一一对应方法的具体例子:
例10.2.3 下面给出一个简单的程序,问:它的输出\(x\)是什么?


解答:我们将其抽象为\(\{+\infty \cdot 1,+\infty \cdot 2,\ldots,+\infty \cdot n\}\)的\(k\)组合数,于是答案为\(C_{n+k-1}^k.\)
例10.2.4从\(S=\{1,2,\ldots,n\}\)中选择\(k\)个不相邻的数,有多少种方法?
思路:要将不相邻转化为可相邻,应该怎么处理?
解答:不妨设\(a_1,a_2,\ldots,a_k\)为选出的\(k\)个不相邻的数,将其作变换\(b_i=a_i-(i-1),i=1,2,\ldots,k.\)于是得到的\(b_i\)只需要不相同,为\(\{1,2,\ldots,n-k+1\}\)中选出的\(k\)组合数,答案为\(C_{n-k+1}^k.\)
10.3 二项式定理和组合恒等式.
二项式定理:\((x+y)^n=\sum\limits_{k=0}^n \dbinom{n}{k}x^ky^{n-k} \quad \forall n \in N^+,x,y \in R.\)
及其推论:\((1+x)^n=\sum\limits_{k=0}^{n} \dbinom{n}{k}x^k.\)
我们提出以下组合恒等式:
(1) \(\dbinom{n}{k}=\dbinom{n}{n-k}.\)
(2) \(\dbinom{n}{k}=\dfrac{n}{k}\dbinom{n-1}{k-1}\)
(3) \(\dbinom{n}{k}=\dbinom{n-1}{k-1}+\dbinom{n-1}{k}.\)
然后,就是一些基于组合分析得出的等式.
(4) \(\sum\limits_{k=0}^{n}\dbinom{n}{k}=2^n.\)
(5) \(\sum\limits_{k=0}^{n}(-1)^n\dbinom{n}{k}=0.\)
(6) \(\sum\limits_{l=0}^k\dbinom{l}{k}=\dbinom{n+1}{k+1}.\)
(7) \(\dbinom{n}{r}\dbinom{r}{k}=\dbinom{n}{k}\dbinom{n-k}{r-k},k \le r \le n,k,r,n \in N.\)
(8) \(\sum\limits_{k=0}^{r}\dbinom{m}{k}\dbinom{n}{r-k}=\dbinom{n+m}{r},r \le \mathrm{min}(n,m).\)
(9) \(\sum\limits_{k=0}^{n}\dbinom{m}{k}\dbinom{n}{k}=\dbinom{m+n}{m}.\)
然后,下面是两个例子:
例10.3.1 证明以下组合恒等式:
(1) \(\sum\limits_{k=0}^{n}k\dbinom{n}{k}=n2^{n-1}.\)
(2) \(\sum\limits_{k=0}^{n}k^2\dbinom{n}{k}=n(n+1)2^{n-2}.\)
有关组合恒等式的证明方法,大致有以下几种:
(1) 已知恒等式代入并化简.
(2) 使用二项式定理比较相同的系数,或者进行级数的求导和积分.
(3) 数学归纳法.
(4) 组合分析方法.
下面我们介绍一个模型,非降路径模型.
从\((0,0)\)到\((m,n)\)的非降路径共有\(\dbinom{m+n}{m}\)条.
推论:集合\(\{1,2,\ldots,n\}\)上的单调递增函数个数为\(\dbinom{2n-1}{n}.\)
推广:设\(A=\{1,2,\ldots,m\},B=\{1,2,\ldots,n\},\)那么从\(A\)到\(B\)的单调函数个数等于\(2\dbinom{m+n-1}{m}-n.\)
例10.3.3挺妙的,见书,写不下了.
10.4 多项式定理.
多项式定理:\((x_1+x_2+\ldots +x_n)^t=\sum\limits_{满足n_1+\ldots +n_t=n的非负整数解}\dbinom{n}{n_1 \ n_2 \ \ldots n_t}x_1^{n_1}x_2^{n_2}\ldots x_t^{n_t},n \in N^+,x_i \in R.\)
其中\(\dbinom{n}{n_1 \ n_2 \ \ldots n_t}\)称作多项式系数.
推论:等式右边不同项数为不定方程\(n_1+n_2+\ldots +n_t=n\)的非负整数解的个数,即\(\dbinom{n+t-1}{n}.\)
推论:\(\sum\dbinom{n}{n_1 \ n_2 \ \ldots n_t}=t^n.\)
多项式系数,刚好就是对应多重集的全排列数.
通过多项式系数证明费马小定理,见书.
给出一个引理,\(p\)为质数,若\(\dbinom{p}{k_1 \ k_2 \ldots k_n} \not = 1,\)则\(p \mid \dbinom{p}{k_1 \ k_2 \ldots k_n}.\)
下面是一些容易错的题目:
1.把\(10\)个不同的球放到\(6\)个不同的盒子里,允许空盒,且前两个盒子的总数至少为\(4\),问有多少种方法.
思路:分步和分组的顺序要搞清楚.
解:计算过程不写在这里了,第一步,我们先枚举有\(k\)个球放在前两个盒子里,共有\(2^k\)种分法,然后其余\(10-k\)个球放在后四个盒子里,共有\(4^{10-k}\)种分法,一共有\(2^k \times 4^{10-k}\)种分法,把它们加起来即得到最终结果.
2.考虑由\(m\)个\(A\)和\(n\)个\(B\)构成序列,其中\(m,n\)为正整数,\(m \le n.\)如果要求每个\(A\)后面至少紧跟着一个\(B,\)问有多少个不同的序列.
思路:我们考虑打包带走
证明:首先,在每个\(A\)后面插入一个\(B\)形成\(m\)个\(AB\),随后将剩余的\(n-m\)个\(B\)插入它们的缝隙中,得到方程\(x_0+x_1+\ldots +x_{m}=n-m,\)其非负整数解数为\(\dbinom{n}{m}.\)
3.设\(S\)是\(n\)元集,\(N\)表示\(A \subseteq B \subseteq S\)的有序对\(\langle A,B \rangle\)的个数,用二项式定理证明\(N=3^n.\)
思路:通常这种需要分段考虑
证明:设\(|B|=k,\)则\(A\)的选法有\(2^k\)种,得到\(|B|=k\)时共有\(2^kC_{n}^{k} \cdot 1^{n-k}\)种选法.相加由二项式定理得到\(\sum\limits_{k=0}^{n}2^kC_{n}^{k} \cdot 1^{n-k}=(1+2)^n=3^n.\)
4.求和\(\sum\limits_{k=0}^{m}\dbinom{n-m+k}{k}.\)
思路:这种题经常用到帕斯卡公式.
解:由帕斯卡公式,求出答案为\(\dbinom{n+1}{m}.\)
5.设有\(k\)类明信片,且第\(i\)类明信片的张数是\(a_i,i=1,2,\ldots,k.\)把它们全部送给\(n\)个朋友,问:有多少种方法?
思路:这道题其实是要考察我们对于不定方程的理解,注意,原来的\(r \le n_i\)这个条件,在本题中可以视为每个\(n_i\)都是无穷的,因为不可能存在一个人拿走超过它所得从而造成其他人拿的是负数.
证明:对于第\(i\)类明信片,得到它的张数为\(\dbinom{n+a_i-1}{a_i},\)由乘法原则知总方法数为\(\prod\limits_{k=1}^{n}\dbinom{n+a_i-1}{a_i}.\)
6.求和:\(\dbinom{r+0}{0}\dbinom{m-0}{n-0}+\dbinom{r+1}{1}\dbinom{m-1}{n-1}+\ldots +\dbinom{r+n}{n}\dbinom{m-n}{n-n}.\)
思路:本题考察非降路径模型的应用.
证明:原题给出的式子为\(\dbinom{r+k}{k}\dbinom{m-k}{n-k},\)考虑\((0,0)\)到\((r,k)\)的非降路径,再考虑\((r+1,k)\)到\((m-n+r+1,n)\)的非降路径,运用乘法原则,我们知道这等于\((0,0)\)到\((m-n+r+1,n)\)的非降路径数,即\(\dbinom{m+r+1}{n}.\)
7.求和:\(\sum\limits_{k=0}^{n}\dbinom{2n}{2k}.\)
提示:本题注意分类
答案:\(n=0\)时,\(=1\).
\(n>0\)时,\(=2^{2n-1}.\)
8.证明:\(\sum\limits_{k=0}^{n-1}\dbinom{n}{k}\dbinom{n}{k+1}=\frac{(2n)!}{(n-1)!(n+1)!}.\)
思路:本题考察对公式变形的敏感度.
证明:\(\sum\limits_{k=0}^{n-1}\dbinom{n}{k}\dbinom{n}{k+1}=\frac{(2n)!}{(n-1)!(n+1)!}=\sum\limits_{k=0}^{n-1}\dbinom{n}{k}\dbinom{n}{n-k-1}=\dbinom{2n}{n-1}\)
9.证明:\(\sum\limits_{k=1}^{n}(-1)^{k-1}\frac{1}{k}\dbinom{n}{k}=1+\frac{1}{2}+\ldots +\frac{1}{n}.\)
思路:当没有别的办法的时候,考虑数学归纳法.
证明:当\(n=1\)的时候左右相等,设当\(n=r\)的时候成立,下面证明\(n=r+1\)时亦成立.
\(LHS=\sum\limits_{k=1}^{r+1}(-1)^{k-1}\frac{1}{k}\dbinom{r+1}{k}=\sum\limits_{k=1}^{r+1}(-1)^{k-1}\frac{1}{k}(\dbinom{r}{k-1}+\dbinom{r}{k})=\sum\limits_{k=0}^{r}(-1)^k\frac{1}{k+1}\dbinom{r}{k}+\sum\limits_{k=1}^{r}(-1)^{k-1}\frac{1}{k}\dbinom{r}{k}=RHS\)
10.一个圆盘绕固定在圆心的轴转动,把圆盘分为\(3\)个相等的扇形,用\(n\)种颜色对扇形涂色,且每个扇形的颜色都不相同,有多少种不同的涂色方案?
思路:这题考察我们对环排列的理解.
解答:由环排列的性质得到答案为\(\frac{A_{n}^{3}}{3}.\)
11.方程\(x_1+x_2+x_3=15\)满足\(x_1 \ge 0,x_2 \ge 1,x_3 \ge 2.\)的整数解的个数是多少?
思路:这种题我们还是应该先把该塞的塞进去,转化为熟知的模型.
证明:考虑方程\(x_1+x_2+x_3=12\)的非负整数解个数,得到答案为\(\dbinom{14}{12}.\)
12.\(A=\{1,2\ldots,n\}.\)这里\(n\)是给定正整数.设\(S \subseteq A,\)若\(S\)的每个元素都不小于\(S\)的基数\(|S|,\)则称\(S\)是饱满的(这里认为空集是饱满的).令\(N(n)\)为\(S\)的饱满子集的个数,试导出\(N(n)\)的公式.
思路:考虑对\(S\)的基数进行讨论.
证明:当\(|S|=k\)时,有\(\dbinom{n-k+1}{k}\)个,\(N(n)=\sum\limits_{k=0}^{n}\dbinom{n-k+1}{k}.\)
13.证明:\(\dbinom{m}{0}\dbinom{m}{n}+\dbinom{m}{1}\dbinom{m-1}{n-1}+\ldots \dbinom{m}{n}\dbinom{m-n}{0}=2^n\dbinom{m}{n}.\)
思路:我们观察右边式子的形式,大概有点想法.
证明:首先证明:\(\dbinom{m}{k}\dbinom{m-k}{n-k}=\dbinom{m}{n}\dbinom{n}{k}.\)
然后再求和,即可得出结果.
下学期,也请各位继续关注:
《System beats!》
《大二病也要学离散!》
《数算の旅》
《某信息学的概率统计》
还有——
《我的算法竞赛不可能这么可爱》
本期到此结束!


浙公网安备 33010602011771号