【离散数学/组合数学】环排列与多重集的排列组合问题


环排列

n n n个互不相同的元素,选取其中 r r r个元素排成一个环。问有多少本质不同的排法。

因为对一种排法旋转 1 , 2 , ⋯   , r − 1 1,2,\cdots,r-1 1,2,,r1位都是一样的,比如 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=(n1)!


多重集的排列组合

一、多重集的定义

多重集是元素可以多次出现的集合。通常把某个元素 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\} {n1a1,n2a2,,nkak}

例如, { 2 ⋅ p , 3 ⋅ q } \{2\cdot p,3\cdot q\} {2p,3q}就表示 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={n1a1,n2a2,,nkak}。从 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={1e,2f,3g},则 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 nn1个位置,排 a 2 a_2 a2,有 C n − n 1 n 2 C_{n-n_1}^{n_2} Cnn1n2种排法;再排 a 3 a_3 a3,有 C n − n 1 − n 2 n 3 C_{n-n_1-n_2}^{n_3} Cnn1n2n3种排法。以此类推,可得排列数 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=Cnn1Cnn1n2Cnn1n2n3Cnn1n2nk1nk=n1!(nn1)!n!n2!(nn1n2)!(nn1)!n3!(nn1n2n3)!(nn1n2)!nk!0!(nn1n2nk1)!=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={n1a1,n2a2,,nkak} 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 nir,则 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={n1a1,n2a2,,nkak} 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={1u,3v,2w},则 { 2 ⋅ v , 1 ⋅ w } \{2\cdot v,1\cdot w\} {2v,1w}就是 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\} {x1a1,x2a2,,xkak}满足 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 k1个挡板把它们分成 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 11 111 1 1 1 11 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+k1个空位,共有 k − 1 k-1 k1个挡板,所以可能的情况个数为 C r + k − 1 k − 1 C_{r+k-1}^{k-1} Cr+k1k1。而 y i y_i yi x i x_i xi是一一对应的,所以原方程解的个数也为 C r + k − 1 k − 1 C_{r+k-1}^{k-1} Cr+k1k1。为方便计算,我们写作 C r + k − 1 r C_{r+k-1}^{r} Cr+k1r

同理,只要元素充足,不一定是无穷大,也可以采用这个结论。

推论:如果再加上条件“每个元素至少取一个”,那么令 z i = x i − 1 z_i=x_i-1 zi=xi1,得 z 1 + z 2 + ⋯ + z k = r − k z_1+z_2+\cdots+z_k=r-k z1+z2++zk=rk z i > 0 z_i>0 zi>0。这个方程解的个数为 C r − 1 k − 1 C_{r-1}^{k-1} Cr1k1,所以结果就是 C r − 1 k − 1 C_{r-1}^{k-1} Cr1k1

总结

设多重集 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={n1a1,n2a2,,nkak} 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 nir,则 N = C r + k − 1 r N=C_{r+k-1}^r N=Cr+k1r
(4) 若 r < n r<n r<n ∃ i \exists i i使得 n i < r n_i<r ni<r,则没有一般的公式,需要专门计算。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值