加法原理
若完成一件事的方法有n类,其中第i类方法包括a_i种不同的方法,且这些方法互补重合,则完成这件事共有 a 1 + a 2 + . . . + a n a_1+a_2+...+a_n a1+a2+...+an种不同的方法。
乘法原理
若完成一件事需要n个步骤,其中第i个步骤有a_i种不同的完成方法,且这些步骤互不干扰,则完成这件事共有 a 1 ∗ a 2 ∗ . . . ∗ a n a_1*a_2*...*a_n a1∗a2∗...∗an种不同的方法。
排列数
从n个不同元素中依次取出m个元素排成一列,产生的不同排列的数量为:
P
n
m
=
n
!
(
n
−
m
)
!
=
n
∗
(
n
−
1
)
∗
.
.
.
∗
(
n
−
m
+
1
)
P_n^m=\frac{n!}{(n-m)!}=n*(n-1)*...*(n-m+1)
Pnm=(n−m)!n!=n∗(n−1)∗...∗(n−m+1)
组合数
从n个不同元素中取出m个组成一个集合(不考虑顺序),产生的不同集合数量为:
C
n
m
=
n
!
m
!
(
n
−
m
)
!
=
n
∗
(
n
−
1
)
∗
.
.
.
∗
(
n
−
m
+
1
)
m
∗
(
m
−
1
)
∗
.
.
.
∗
2
∗
1
C_n^m=\frac{n!}{m!(n-m)!}=\frac{n*(n-1)*...*(n-m+1)}{m*(m-1)*...*2*1}
Cnm=m!(n−m)!n!=m∗(m−1)∗...∗2∗1n∗(n−1)∗...∗(n−m+1)
特别地,根据定义, C n 0 = 1 C_n^0=1 Cn0=1
组合数性质:
-
C
n
m
=
C
n
n
−
m
C_n^m=C_n^{n-m}
Cnm=Cnn−m
由组合数的定义,对于从n个不同元素中取出m个组成的每个集合,剩余的n-m个元素也构成一个集合,这两个集合一一对应,所以性质1成立。 -
C
n
m
=
C
n
−
1
n
+
C
n
−
1
m
−
1
C_n^m=C_{n-1}^n+C_{n-1}^{m-1}
Cnm=Cn−1n+Cn−1m−1
从 n n n个不同元素中取出 m m m个组成一个集合有两种办法:取 n n n号元素,不取 n n n号元素。若取 n n n号元素,则应在剩余 n − 1 n-1 n−1个元素中选出 m − 1 m-1 m−1个元素,有 C n − 1 m − 1 C_{n-1}^{m-1} Cn−1m−1中选择;若不取,则应在剩余 n − 1 n-1 n−1个元素中选出 m m m个元素,有 C n − 1 m C_{n-1}^{m} Cn−1m种选择。根据加法原理,性质2成立。 -
C
n
0
+
C
n
1
+
.
.
.
+
C
n
n
=
2
n
C_n^0+C_n^1+...+C_n^n=2^n
Cn0+Cn1+...+Cnn=2n
从n个不同元素中取出若干个元素组成一个集合,有n+1类方法,分别是取出0,1,2,…,n个。根据加法原理,共有 C n 0 + C n 1 + . . . + C n n 种 C_n^0+C_n^1+...+C_n^n种 Cn0+Cn1+...+Cnn种,从另一个方面去详,n个元素每个元素可取或不取,总方法数显然为 2 n 2^n 2n,二者相等,故性质3成立。
二项式定理
( a + b ) n = ∑ k = 0 n C n k a k b n − k (a+b)^n=\large\sum_{k=0}^nC_n^ka^kb^{n-k} (a+b)n=k=0∑nCnkakbn−k
数学归纳法证明:
当
n
=
1
n=1
n=1时,
(
a
+
b
)
1
=
C
n
0
a
0
b
1
+
C
n
1
a
1
b
0
=
a
+
b
(a+b)^1=C_n^0a^0b^1+C^1_na^1b^0=a+b
(a+b)1=Cn0a0b1+Cn1a1b0=a+b成立。
假设当
n
=
m
n=m
n=m时命题成立,当
n
=
m
+
1
n=m+1
n=m+1时:
(
a
+
b
)
m
+
1
=
(
a
+
b
)
(
a
+
b
)
m
=
(
a
+
b
)
∑
k
=
0
m
C
m
k
a
k
b
m
−
k
(a+b)^{m+1}=(a+b)(a+b)^m=(a+b)\sum_{k=0}^mC_m^ka^kb^{m-k}
(a+b)m+1=(a+b)(a+b)m=(a+b)∑k=0mCmkakbm−k
=
∑
k
=
0
m
C
m
k
a
k
+
1
b
m
−
k
+
∑
k
=
0
m
C
m
k
a
k
b
m
−
k
+
1
=\sum_{k=0}^mC_m^ka^{k+1}b^{m-k}+\sum_{k=0}^mC_m^ka^kb^{m-k+1}
=∑k=0mCmkak+1bm−k+∑k=0mCmkakbm−k+1
=
∑
k
=
1
m
+
1
C
m
k
−
1
a
k
b
m
−
k
+
1
+
∑
k
=
0
m
C
m
k
a
k
b
m
−
k
+
1
=\sum_{k=1}^{m+1}C_m^{k-1}a^{k}b^{m-k+1}+\sum_{k=0}^mC_m^ka^kb^{m-k+1}
=∑k=1m+1Cmk−1akbm−k+1+∑k=0mCmkakbm−k+1
=
∑
k
=
1
m
(
C
m
k
−
1
+
C
m
k
)
a
k
b
m
−
k
+
1
+
C
m
m
a
m
+
1
b
0
+
C
m
0
a
0
b
m
+
1
=\sum_{k=1}^{m}(C_m^{k-1}+C_m^k)a^{k}b^{m-k+1}+C_m^ma^{m+1}b^0+C_m^0a^0b^{m+1}
=∑k=1m(Cmk−1+Cmk)akbm−k+1+Cmmam+1b0+Cm0a0bm+1
=
∑
k
=
0
m
+
1
C
m
+
1
k
a
k
b
m
−
k
+
1
=\sum_{k=0}^{m+1}C_{m+1}^ka^{k}b^{m-k+1}
=∑k=0m+1Cm+1kakbm−k+1
多重集
多重集是指包含重复元素的广义集合。
多重集的排列数:
设
S
=
{
n
1
∗
a
1
,
n
2
∗
a
2
,
.
.
.
,
n
k
∗
a
k
}
S=\begin{Bmatrix}n_1*a_1,n_2*a_2,...,n_k*a_k\end{Bmatrix}
S={n1∗a1,n2∗a2,...,nk∗ak}是由
n
1
个
a
1
,
n
2
个
a
2
.
.
.
n
k
个
a
k
n_1个a_1,n_2个a_2...n_k个a_k
n1个a1,n2个a2...nk个ak组成的多重集。
S
S
S的全排列个数为:
n
!
n
1
!
n
2
!
.
.
.
n
k
!
\frac{n!}{n_1!n_2!...n_k!}
n1!n2!...nk!n!
自行理解即可。
多重集的组合数
设
S
=
{
n
1
⋅
a
1
,
n
2
⋅
a
2
,
.
.
.
,
n
k
⋅
a
k
}
S=\begin{Bmatrix}n_1\cdot a_1,n_2\cdot a_2,...,n_k\cdot a_k\end{Bmatrix}
S={n1⋅a1,n2⋅a2,...,nk⋅ak}是由
n
1
个
a
1
,
n
2
个
a
2
.
.
.
n
k
个
a
k
n_1个a_1,n_2个a_2...n_k个a_k
n1个a1,n2个a2...nk个ak组成的多重集,设整数
r
≤
n
i
(
∀
i
∈
[
1
,
k
]
)
r\le n_i(\forall i\in[1,k])
r≤ni(∀i∈[1,k])。从
S
S
S中取出r个元素组成一个多重集(不考虑元素的顺序),产生的不同多重集的数量为:
C
k
+
r
−
1
k
−
1
C_{k+r-1}^{k-1}
Ck+r−1k−1
证明:原问题等价于统计下列集合的数量:
{
x
1
⋅
a
1
,
x
2
⋅
a
2
,
.
.
.
,
x
k
⋅
a
k
}
\begin{Bmatrix}x_1\cdot a_1,x_2\cdot a_2,...,x_k\cdot a_k\end{Bmatrix}
{x1⋅a1,x2⋅a2,...,xk⋅ak},其中
∑
i
=
1
k
x
i
=
r
\sum_{i=1}^kx_i=r
∑i=1kxi=r,并且
x
i
≤
n
i
x_i\le n_i
xi≤ni。因为
r
≤
n
i
r\le n_i
r≤ni,必有
x
i
≤
n
i
x_i\le n_i
xi≤ni,所以只需考虑
∑
i
=
1
k
x
i
=
r
\sum_{i=1}^kx_i=r
∑i=1kxi=r这个条件。现在,原问题就相当于一个插空问题,有
k
−
1
k-1
k−1个隔板,将
r
r
r分为
k
k
k个部分,每个部分与
x
1
,
x
2
,
.
.
.
x
k
x_1,x_2,...x_k
x1,x2,...xk一一对应,即每个部分的个数为当前
x
1
,
x
2
,
.
.
.
x
k
x_1,x_2,...x_k
x1,x2,...xk的值,现在我们把
k
−
1
k-1
k−1个隔板看作
1
1
1,
r
r
r看作
r
r
r个
0
0
0,就有
k
+
r
−
1
k+r-1
k+r−1个数,这
k
+
r
−
1
k+r-1
k+r−1个数构成的多重集
{
r
⋅
0
,
(
k
−
1
)
⋅
1
}
\begin{Bmatrix}r\cdot 0,(k-1)\cdot 1\end{Bmatrix}
{r⋅0,(k−1)⋅1}的全排列数就为所求,即:
(
r
+
k
−
1
)
!
r
!
(
k
−
1
)
!
=
C
k
+
r
−
1
r
=
C
k
+
r
−
1
k
−
1
\frac{(r+k-1)!}{r!(k-1)!}=C_{k+r-1}^r=C_{k+r-1}^{k-1}
r!(k−1)!(r+k−1)!=Ck+r−1r=Ck+r−1k−1