环排列
有 n n n个互不相同的元素,选取其中 r r r个元素排成一个环。问有多少本质不同的排法。
因为对一种排法旋转 1 , 2 , ⋯ , r − 1 1,2,\cdots,r-1 1,2,⋯,r−1位都是一样的,比如 123 , 231 , 312 123,231,312 123,231,312,所以我们可以把 r r r种可以通过旋转互相转化的排法分为一组,而总共有 A n r A_n^r Anr种排法,所以有 A n r r \frac{A_n^r}{r} rAnr组,每一组代表一种相同的环排列,所以共有 A n r r \frac{A_n^r}{r} rAnr个环排列。
即: n n n个元素取 r r r个的环形排列的个数是 A n r r \frac{A_n^r}{r} rAnr(称为 n n n个元素的环形 r r r排列数)。
特别地,当 n = r n=r n=r时,排列个数为 A n n n = ( n − 1 ) ! \frac{A_n^n}{n}=(n-1)! nAnn=(n−1)!。
多重集的排列组合
一、多重集的定义
多重集是元素可以多次出现的集合。通常把某个元素
a
i
a_i
ai出现
的次数
n
i
n_i
ni叫做该元素的重复度。如果多重集
S
S
S中
含有
k
k
k种不同的元素
a
1
,
a
2
,
⋯
,
a
k
a_1,a_2,\cdots,a_k
a1,a2,⋯,ak,那么可以把
S
S
S记为
{
n
1
⋅
a
1
,
n
2
⋅
a
2
,
⋯
,
n
k
⋅
a
k
}
\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\}
{n1⋅a1,n2⋅a2,⋯,nk⋅ak}。
例如, { 2 ⋅ p , 3 ⋅ q } \{2\cdot p,3\cdot q\} {2⋅p,3⋅q}就表示 p , p , q , q , q p,p,q,q,q p,p,q,q,q。
二、多重集的排列
定义
设多重集 S = { n 1 ⋅ a 1 , n 2 ⋅ a 2 , ⋯ , n k ⋅ a k } S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\} S={n1⋅a1,n2⋅a2,⋯,nk⋅ak}。从 S S S中有序选取的 r r r个元素叫做 S S S的一个 r r r排列,当 r = n = n 1 + n 2 + ⋯ + n k r=n=n_1+n_2+\cdots+n_k r=n=n1+n2+⋯+nk时,也叫做 S S S的一个排列。
例如,对于 S = { 1 ⋅ e , 2 ⋅ f , 3 ⋅ g } S=\{1\cdot e,2\cdot f,3\cdot g\} S={1⋅e,2⋅f,3⋅g},则 e f g f efgf efgf、 g g g e ggge ggge都是 S S S的一个 4 4 4排列。
每个元素有无穷多个的情况
设多重集 S = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , ⋯ , ∞ ⋅ a k } S=\{\infty\cdot a_1,\infty\cdot a_2,\cdots,\infty\cdot a_k\} S={∞⋅a1,∞⋅a2,⋯,∞⋅ak},则 S S S的 r r r排列数是 k r k^r kr。
这是因为,排列的每个元素都可以在 S S S种任选(不用担心被用完),有 k k k种选择,于是总的排列数是 k r k^r kr。
同理,即使 S S S每个元素都只有有限个,但只要每个元素的个数都大于等于 r r r,依然可以任选,排列数也是 k r k^r kr。
选取集合所有元素的情况
此时 r = n = n 1 + n 2 + ⋯ + n k r=n=n_1+n_2+\cdots+n_k r=n=n1+n2+⋯+nk,每个元素都要用上,即要求 S S S的排列数。
一开始有 r = n r=n r=n个位置。考虑先排 a 1 a_1 a1,有 C n n 1 C_n^{n_1} Cnn1种排法;现在已经占了 n 1 n_1 n1个位置,还剩 n − n 1 n-n_1 n−n1个位置,排 a 2 a_2 a2,有 C n − n 1 n 2 C_{n-n_1}^{n_2} Cn−n1n2种排法;再排 a 3 a_3 a3,有 C n − n 1 − n 2 n 3 C_{n-n_1-n_2}^{n_3} Cn−n1−n2n3种排法。以此类推,可得排列数 N N N为 N = C n n 1 C n − n 1 n 2 C n − n 1 − n 2 n 3 ⋯ C n − n 1 − n 2 − ⋯ − n k − 1 n k = n ! n 1 ! ( n − n 1 ) ! ( n − n 1 ) ! n 2 ! ( n − n 1 − n 2 ) ! ( n − n 1 − n 2 ) ! n 3 ! ( n − n 1 − n 2 − n 3 ) ! ⋯ ( n − n 1 − n 2 − ⋯ − n k − 1 ) ! n k ! 0 ! = n ! n 1 ! n 2 ! ⋯ n k ! \begin{aligned}N&=C_n^{n_1}C_{n-n_1}^{n_2}C_{n-n_1-n_2}^{n_3}\cdots C_{n-n_1-n_2-\cdots-n_{k-1}}^{n_k}\\&=\frac{n!}{n_1!(n-n_1)!}\frac{(n-n_1)!}{n_2!(n-n_1-n_2)!}\frac{(n-n_1-n_2)!}{n_3!(n-n_1-n_2-n_3)!}\cdots\frac{(n-n_1-n_2-\cdots-n_{k-1})!}{n_k!0!}\\&=\frac{n!}{n_1!n_2!\cdots n_k!}\end{aligned} N=Cnn1Cn−n1n2Cn−n1−n2n3⋯Cn−n1−n2−⋯−nk−1nk=n1!(n−n1)!n!n2!(n−n1−n2)!(n−n1)!n3!(n−n1−n2−n3)!(n−n1−n2)!⋯nk!0!(n−n1−n2−⋯−nk−1)!=n1!n2!⋯nk!n!
即: S S S的排列数为 n ! n 1 ! n 2 ! ⋯ n k ! \frac{n!}{n_1!n_2!\cdots n_k!} n1!n2!⋯nk!n!。
当 n 1 = n 2 = ⋯ = n k = 1 n_1=n_2=\cdots=n_k=1 n1=n2=⋯=nk=1时,退化为普通集合的排列问题,排列数为 n ! n! n!。
总结
设多重集
S
=
{
n
1
⋅
a
1
,
n
2
⋅
a
2
,
⋯
,
n
k
⋅
a
k
}
S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\}
S={n1⋅a1,n2⋅a2,⋯,nk⋅ak},
n
=
n
1
+
n
2
+
⋯
+
n
k
n=n_1+n_2+\cdots+n_k
n=n1+n2+⋯+nk,则
S
S
S的
r
r
r排列数
N
N
N满足:
(1) 若
r
>
n
r>n
r>n,则
N
=
0
N=0
N=0
(2) 若
r
=
n
r=n
r=n,则
N
=
n
!
n
1
!
n
2
!
⋯
n
k
!
N=\frac{n!}{n_1!n_2!\cdots n_k!}
N=n1!n2!⋯nk!n!
(3) 若
r
<
n
r<n
r<n且对所有
i
=
1
,
2
,
⋯
,
k
i=1,2,\cdots,k
i=1,2,⋯,k都有
n
i
≥
r
n_i\ge r
ni≥r,则
N
=
k
r
N=k^r
N=kr
(4) 若
r
<
n
r<n
r<n且
∃
i
\exists i
∃i使得
n
i
<
r
n_i<r
ni<r,则没有一般的公式,需要专门计算。
三、多重集的组合
定义
设多重集 S = { n 1 ⋅ a 1 , n 2 ⋅ a 2 , ⋯ , n k ⋅ a k } S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\} S={n1⋅a1,n2⋅a2,⋯,nk⋅ak}, S S S的含有 r r r个元素的子多重集叫做 S S S的 r r r组合。
例如, S = { 1 ⋅ u , 3 ⋅ v , 2 ⋅ w } S=\{1\cdot u,3\cdot v,2\cdot w\} S={1⋅u,3⋅v,2⋅w},则 { 2 ⋅ v , 1 ⋅ w } \{2\cdot v,1\cdot w\} {2⋅v,1⋅w}就是 S S S的一个 3 3 3组合。
每个元素有无穷多个的情况
设多重集 S = { ∞ ⋅ a 1 , ∞ ⋅ a 2 , ⋯ , ∞ ⋅ a k } S=\{\infty\cdot a_1,\infty\cdot a_2,\cdots,\infty\cdot a_k\} S={∞⋅a1,∞⋅a2,⋯,∞⋅ak},它的一个 r r r组合 { x 1 ⋅ a 1 , x 2 ⋅ a 2 , ⋯ , x k ⋅ a k } \{x_1\cdot a_1,x_2\cdot a_2,\cdots,x_k\cdot a_k\} {x1⋅a1,x2⋅a2,⋯,xk⋅ak}满足 x 1 + x 2 + ⋯ + x k = r x_1+x_2+\cdots+x_k=r x1+x2+⋯+xk=r。 S S S的 r r r组合的个数就是方程 x 1 + x 2 + ⋯ + x k = r x_1+x_2+\cdots+x_k=r x1+x2+⋯+xk=r的非负整数解的个数。现在我们来解这个方程。令 y i = x i + 1 y_i=x_i+1 yi=xi+1,则转化为 y 1 + y 2 + ⋯ + y k = r + k y_1+y_2+\cdots+y_k=r+k y1+y2+⋯+yk=r+k。我们想象有 r + k r+k r+k个 1 1 1,有 k − 1 k-1 k−1个挡板把它们分成 k k k份,每份所含 1 1 1的个数就是 y i y_i yi的值。例如, [ 1 1 1 ∣ 1 1 ∣ 1 ∣ 1 1 1 1 1 ∣ 1 1 ] [1\ 1\ 1|1\ 1|1|1\ 1\ 1\ 1\ 1|1\ 1] [1 1 1∣1 1∣1∣1 1 1 1 1∣1 1]这个就表示 y 1 , 2 , 3 , 4 , 5 = 3 , 2 , 1 , 5 , 2 y_{1,2,3,4,5}=3,2,1,5,2 y1,2,3,4,5=3,2,1,5,2。我们知道,每个 y i y_i yi都大于等于 1 1 1,所以两个挡板不能放在同一个空位中,且不能放在最左边和最右边。 r + k r+k r+k个 1 1 1形成 r + k − 1 r+k-1 r+k−1个空位,共有 k − 1 k-1 k−1个挡板,所以可能的情况个数为 C r + k − 1 k − 1 C_{r+k-1}^{k-1} Cr+k−1k−1。而 y i y_i yi和 x i x_i xi是一一对应的,所以原方程解的个数也为 C r + k − 1 k − 1 C_{r+k-1}^{k-1} Cr+k−1k−1。为方便计算,我们写作 C r + k − 1 r C_{r+k-1}^{r} Cr+k−1r。
同理,只要元素充足,不一定是无穷大,也可以采用这个结论。
推论:如果再加上条件“每个元素至少取一个”,那么令 z i = x i − 1 z_i=x_i-1 zi=xi−1,得 z 1 + z 2 + ⋯ + z k = r − k z_1+z_2+\cdots+z_k=r-k z1+z2+⋯+zk=r−k, z i > 0 z_i>0 zi>0。这个方程解的个数为 C r − 1 k − 1 C_{r-1}^{k-1} Cr−1k−1,所以结果就是 C r − 1 k − 1 C_{r-1}^{k-1} Cr−1k−1。
总结
设多重集
S
=
{
n
1
⋅
a
1
,
n
2
⋅
a
2
,
⋯
,
n
k
⋅
a
k
}
S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\}
S={n1⋅a1,n2⋅a2,⋯,nk⋅ak},
n
=
n
1
+
n
2
+
⋯
+
n
k
n=n_1+n_2+\cdots+n_k
n=n1+n2+⋯+nk,则
S
S
S的
r
r
r组合数
N
N
N满足:
(1) 若
r
>
n
r>n
r>n,则
N
=
0
N=0
N=0
(2) 若
r
=
n
r=n
r=n,则
N
=
1
N=1
N=1
(3) 若
r
<
n
r<n
r<n且对所有
i
=
1
,
2
,
⋯
,
k
i=1,2,\cdots,k
i=1,2,⋯,k都有
n
i
≥
r
n_i\ge r
ni≥r,则
N
=
C
r
+
k
−
1
r
N=C_{r+k-1}^r
N=Cr+k−1r
(4) 若
r
<
n
r<n
r<n且
∃
i
\exists i
∃i使得
n
i
<
r
n_i<r
ni<r,则没有一般的公式,需要专门计算。