组合分析
概率论中,许多问题只要通过计算某个事件发生的结果的数目就能得以解决,关于计数的数学理论通常称为组合分析,通俗来讲我认为这个东西就是“数数”,如果数都数不好那还怎么求概率。(高中学的时候叫排列组合)
1 计数基本法则
首先来看计数基本法则,计数基本法则是许多其他“数数”的基础,日常生活中也常常要用到,只不过我们没有用专业一点儿的术语来描述它,假设有两个实验,其中试验1有
m
m
m种可能的结果,对应于试验1的每一个结果,试验2有
n
n
n种可能的结果,则这两个实验一共有
m
n
mn
mn种可能的结果。这种只有两个试验的情况简直再好理解不过,进一步推广到
r
r
r个试验,试验1有
n
1
n_1
n1种可能的结果,对应于试验1的每一种结果,试验2有
n
2
n_2
n2种可能的结果,以此类推,这
r
r
r个试验一共有
n
1
n
2
⋯
n
r
n_1n_2\cdots n_r
n1n2⋯nr种可能的结果。
计数基本法则的证明十分简单,尽管把所有的情况都列举出来,虽然麻烦了一点儿,不过很直观。
2 排列
根据实际问题入手,给出三个字母
a
,
b
,
c
a,b,c
a,b,c现在对这三个字母进行排列,一共有多少种不同的情况呢?小学数学题嘛,一共6种情况分别是
a
b
c
,
a
c
b
,
b
a
c
,
b
c
a
,
c
a
b
,
c
b
a
abc,acb,bac,bca,cab,cba
abc,acb,bac,bca,cab,cba,每一种都称为一个排列。这排列数量是这么来的,第一个位置有三种可能,第一个位置确定完后第二个位置只有两种可能,最后一个位置只有一种可能,因此就是
3
∗
2
∗
1
=
6
3*2*1=6
3∗2∗1=6。推广到若一共有
n
n
n个元素,依据上述推理,一共有
n
∗
(
n
−
1
)
∗
(
n
−
2
)
∗
⋯
∗
2
∗
1
=
n
!
n*(n-1)*(n-2)*\cdots *2*1=n!
n∗(n−1)∗(n−2)∗⋯∗2∗1=n!不同排列方式。(高中学的表示方法就是
A
n
n
A_n^n
Ann)
我们现在将这个问题稍作修改,现在有6字母
a
,
a
,
a
,
b
,
b
,
c
a,a,a,b,b,c
a,a,a,b,b,c对着6个字母进行排序,一共有多少种不同的情况呢?现在将重复的字母先区分开,给个下标
a
1
,
a
2
,
a
3
,
b
1
,
b
2
,
c
a_1,a_2,a_3,b_1,b_2,c
a1,a2,a3,b1,b2,c现在就变成了前面的情况,一共有
6
!
=
720
6!=720
6!=720种情况。如果把下标去掉,则会发现有许多重复的排列结果,对于
a
a
a来说
a
1
,
a
2
,
a
3
a_1,a_2,a_3
a1,a2,a3在排列中的相对位置有
3
!
=
6
3!=6
3!=6种情况,去掉下标后这些情况完全一样,
b
b
b同理
2
!
=
2
2!=2
2!=2种情况,根据基本计数法则,
a
a
a与
b
b
b产生的排列结果有
6
∗
2
=
12
6*2=12
6∗2=12种结果,鉴于这些结果完全没区别,因此实际的不同排列组合应该为
720
/
12
=
60
720/12=60
720/12=60种。老套路,推广到一般情况对于有
n
n
n个元素,其中有
n
1
n_1
n1个元素彼此相同,
⋯
\cdots
⋯,
n
r
n_r
nr个元素彼此相同,这样的不同排列方式数量为
n
!
n
1
!
n
2
!
⋯
n
r
!
\cfrac{n!}{n_1!n_2!\cdots n_r!}
n1!n2!⋯nr!n!。
3 组合
再给出一个实际问题,从26个英文字母里面选择3个不同的英文字母有多少种不同的组,按照正常的逻辑推理,首先选第一个字母有26种可能,然后选第二个字母只剩下25种可能,再选第三个字母剩下24种可能。于是就是
26
∗
25
∗
24
=
15600
26*25*24=15600
26∗25∗24=15600,如果考虑顺序则到此为止。不考虑顺序就是组合的问题,这15600种结果中,我们拿出
a
,
b
,
c
a,b,c
a,b,c三个字母,它被拿出的顺序可能是前一节说过的6种,现在这6种情况都是同一种组合,对任意三个字母都是一样的,因此组合的数量为
15600
/
6
=
2600
15600/6=2600
15600/6=2600种。推广到一般情况,从
n
n
n个元素中找
r
r
r个元素,一共有
n
∗
(
n
−
1
)
∗
⋯
∗
(
n
−
r
+
1
)
n*(n-1)*\cdots *(n-r+1)
n∗(n−1)∗⋯∗(n−r+1)种取法,这些取法中的
r
r
r个元素根据不同的排列方式被取了
r
!
r!
r!次,因此不同组合的数量应为
n
∗
(
n
−
1
)
∗
⋯
∗
(
n
−
r
+
1
)
r
!
=
n
!
(
n
−
r
)
!
r
!
\cfrac{n*(n-1)*\cdots *(n-r+1)}{r!}=\cfrac{n!}{(n-r)!r!}
r!n∗(n−1)∗⋯∗(n−r+1)=(n−r)!r!n!种。
现在来专业地表达组合,对于
r
≤
n
r\le n
r≤n,定义
(
n
r
)
=
n
!
(
n
−
r
)
!
r
!
\begin{pmatrix} n\\r\end{pmatrix}=\cfrac{n!}{(n-r)!r!}
(nr)=(n−r)!r!n!,这样就表示从
n
n
n个元素中一次取
r
r
r个的可能组合数。(高中学的是
C
n
r
C_n^r
Cnr)现在考虑对这个公式变一变,试想从
n
n
n个元素中选取
r
r
r个元素,其中有一个元素
γ
\gamma
γ,所有可能的组合或包含
γ
\gamma
γ或不包含
γ
\gamma
γ,这就有了这个非常有用的恒等式:
(
n
r
)
=
(
n
−
1
r
−
1
)
+
(
n
−
1
r
)
\begin{pmatrix} n\\r\end{pmatrix}=\begin{pmatrix} n-1\\r-1\end{pmatrix}+\begin{pmatrix} n-1\\r\end{pmatrix}
(nr)=(n−1r−1)+(n−1r)
组合
(
n
r
)
=
n
!
(
n
−
r
)
!
r
!
\begin{pmatrix} n\\r\end{pmatrix}=\cfrac{n!}{(n-r)!r!}
(nr)=(n−r)!r!n!经常成为二项式系数。二项式定理如下:
(
x
+
y
)
n
=
∑
k
=
0
n
(
n
k
)
x
k
y
n
−
k
(x+y)^n=\sum_{k=0}^n\begin{pmatrix} n\\k\end{pmatrix}x^ky^{n-k}
(x+y)n=k=0∑n(nk)xkyn−k
二项式定理可以用数学归纳法和组合法证明,这里就不证了。
4 二项式及多项式系数
组合
(
n
r
)
=
n
!
(
n
−
r
)
!
r
!
\begin{pmatrix} n\\r\end{pmatrix}=\cfrac{n!}{(n-r)!r!}
(nr)=(n−r)!r!n!经常成为二项式系数。二项式定理如下:
(
x
+
y
)
n
=
∑
k
=
0
n
(
n
k
)
x
k
y
n
−
k
(x+y)^n=\sum_{k=0}^n\begin{pmatrix} n\\k\end{pmatrix}x^ky^{n-k}
(x+y)n=k=0∑n(nk)xkyn−k
二项式定理可以用数学归纳法和组合法证明,这里就不证了。现在考虑另一个问题,把
n
n
n个不同的元素分成
r
r
r组,每组包含的元素数量分别为
n
1
n
2
⋯
n
r
n_1n_2\cdots n_r
n1n2⋯nr其中
∑
i
=
1
r
n
i
=
n
\sum_{i=1}^rn_i=n
∑i=1rni=n,一共有多少分法。根据组合我们可以非常简单地想到,先从
n
n
n中选
n
1
n_1
n1个,再从剩下的
n
−
n
1
n-n_1
n−n1中选
n
2
n_2
n2个,以此类推,最后根据计数基本法则,组数就是这些的乘积:
(
n
n
1
)
(
n
−
n
1
n
2
)
⋯
(
n
−
n
1
−
n
2
−
⋯
−
n
r
−
1
n
r
)
=
n
!
(
n
−
n
1
)
!
n
1
!
∗
(
n
−
n
1
)
!
(
n
−
n
1
−
n
2
)
!
n
2
!
∗
⋯
∗
(
n
−
n
1
−
n
2
−
⋯
−
n
r
−
1
)
!
0
!
n
r
!
=
n
!
n
1
!
n
2
!
⋯
n
r
!
\begin{aligned} &\begin{pmatrix} n\\n_1\end{pmatrix}\begin{pmatrix} n-n_1\\n_2\end{pmatrix}\cdots \begin{pmatrix} n-n_1-n_2-\cdots -n_{r-1}\\n_r\end{pmatrix} \\ &=\cfrac{n!}{(n-n_1)!n_1!}*\cfrac{(n-n_1)!}{(n-n_1-n_2)!n_2!}*\cdots *\cfrac{(n-n_1-n_2-\cdots -n_{r-1})!}{0!n_r!}\\ &=\cfrac{n!}{n_1!n_2!\cdots n_r!} \end{aligned}
(nn1)(n−n1n2)⋯(n−n1−n2−⋯−nr−1nr)=(n−n1)!n1!n!∗(n−n1−n2)!n2!(n−n1)!∗⋯∗0!nr!(n−n1−n2−⋯−nr−1)!=n1!n2!⋯nr!n!
这和前面那个排列问题的结果是一样的。
根据上面问题,如果
∑
i
=
1
r
n
i
=
n
\sum_{i=1}^rn_i=n
∑i=1rni=n,则定义
(
n
n
1
,
n
2
,
⋯
,
n
r
)
=
n
!
n
1
!
n
2
!
⋯
n
r
!
\begin{pmatrix} n\\n_1,n_2,\cdots, n_r\end{pmatrix}=\cfrac{n!}{n_1!n_2!\cdots n_r!}
(nn1,n2,⋯,nr)=n1!n2!⋯nr!n!,表示吧
n
n
n个不同的元素分成大小分别为
n
1
,
n
2
,
⋯
,
n
r
n_1,n_2,\cdots, n_r
n1,n2,⋯,nr的
r
r
r个不同组的组数。这个组合也称为多项式系数,多项式定理如下:
(
x
1
+
x
2
+
⋯
+
x
r
)
n
=
∑
(
n
1
,
⋯
,
n
r
)
:
n
1
+
⋯
+
n
r
=
n
(
n
n
1
,
n
2
,
⋯
,
n
r
)
x
1
n
1
x
2
n
2
⋯
x
r
n
r
(x_1+x_2+\cdots +x_r)^n=\sum_{(n_1,\cdots,n_r):n_1+\cdots+n_r=n}\begin{pmatrix} n\\n_1,n_2,\cdots, n_r\end{pmatrix}x_1^{n_1}x_2^{n_2}\cdots x_r^{n_r}
(x1+x2+⋯+xr)n=(n1,⋯,nr):n1+⋯+nr=n∑(nn1,n2,⋯,nr)x1n1x2n2⋯xrnr
所有
n
i
n_i
ni都是非负数。
5 思考问题
理解数学中的定义并不难,遇到实际问题如果脑子不灵活理解了定义也不会用。下面两个问题很简单,稍微思考一下就可以了:
- 将10个小孩平均分成A、B两个组去参加两场不同的比赛,一共有多少种分法?( 10 ! 5 ! × 5 ! \cfrac{10!}{5!×5!} 5!×5!10!)
- 将10个小孩平均分成两组进行篮球比赛,一共有多少种分法?( 10 ! / ( 5 ! × 5 ! ) 2 ! \cfrac{10!/(5!×5!)}{2!} 2!10!/(5!×5!))
参考资料:《概率论基础教程》Sheldon M.Ross