【组合数学】排列组合 ( 多重集排列

您所在的位置:网站首页 组合数学计算公式有哪些 【组合数学】排列组合 ( 多重集排列

【组合数学】排列组合 ( 多重集排列

2024-07-10 03:33| 来源: 网络整理| 查看: 265

文章目录 一、多重集二、多重集全排列三、多重集全排列示例三、多重集非全排列 1 所有元素重复度大于排列数 ( n i ≥ r n_i \geq r ni​≥r )四、多重集非全排列 2 某些元素重复度小于排列数 ( n i ≤ r n_i \leq r ni​≤r )

排列组合参考博客 :

【组合数学】基本计数原则 ( 加法原则 | 乘法原则 )【组合数学】集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | 二项式定理 )【组合数学】排列组合 ( 排列组合内容概要 | 选取问题 | 集合排列 | 集合组合 )【组合数学】排列组合 ( 排列组合示例 ) 一、多重集

多重集表示 :

S = { n 1 ⋅ a 1 , n 2 ⋅ a 2 , ⋯   , n k ⋅ a k } ,     0 ≤ n i ≤ + ∞ S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\infty S={n1​⋅a1​,n2​⋅a2​,⋯,nk​⋅ak​},   0≤ni​≤+∞

元素种类 : 多重集中含有 k k k 种不同的元素 ,元素表示 : 每个元素表示为 a 1 , a 2 , ⋯   , a k a_1 , a_2 , \cdots , a_k a1​,a2​,⋯,ak​ ,元素个数 : 每个元素出现的次数是 n 1 , n 2 , ⋯   , n k n_1, n_2, \cdots , n_k n1​,n2​,⋯,nk​ ,元素个数取值 : n i n_i ni​ 的取值要求是 大于 0 0 0 , 小于正无穷 + ∞ + \infty +∞ ; 二、多重集全排列

多重集 :

S = { n 1 ⋅ a 1 , n 2 ⋅ a 2 , ⋯   , n k ⋅ a k } ,     0 ≤ n i ≤ + ∞ S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\infty S={n1​⋅a1​,n2​⋅a2​,⋯,nk​⋅ak​},   0≤ni​≤+∞

★ 全排列 : r = n 1 + n 2 + ⋯ + n k = n r = n_1 + n_2 + \cdots + n_k = n r=n1​+n2​+⋯+nk​=n

N = n ! n 1 ! n 2 ! ⋯ n k ! N = \cfrac{n!}{n_1! n_2! \cdots n_k!} N=n1​!n2​!⋯nk​!n!​

★ 多重集的全排列数是 元素总数阶乘 , 除以 所有重复度的阶乘 ;

下面是推导过程

有 k k k 种元素 ,

放置元素 a 1 a_1 a1​ : 在排列中先放第一种元素 a 1 a_1 a1​ , 该元素有 n 1 n_1 n1​ 个 , n n n 个位置中选出 n 1 n_1 n1​ 个 位置 , 有 C ( n , n 1 ) C(n, n_1) C(n,n1​) 种方法 ;

C ( n , n 1 ) = n ! ( n − n 1 ) !   n 1 ! C(n, n_1) = \cfrac{n!}{(n-n_1) ! \ n_1!} C(n,n1​)=(n−n1​)! n1​!n!​

放置元素 a 2 a_2 a2​ : 放置好 n 1 n_1 n1​ 之后放置第二种元素 a 2 a_2 a2​ , 该元素有 n 2 n_2 n2​ 个 , 此时还有 n − n 1 n-n_1 n−n1​ 个空位 , 从 n − 1 n-1 n−1 个位置中选择 n 2 n_2 n2​ 个位置有 C ( n − n 1 , n 2 ) C(n-n_1 , n_2) C(n−n1​,n2​) 种方法 ;

C ( n − n 1 , n 2 ) = ( n − n 1 ) ! ( n − n 1 − n 2 ) !   n 2 ! C(n - n_1, n_2) = \cfrac{(n-n_1)!}{(n-n_1 - n_2) ! \ n_2!} C(n−n1​,n2​)=(n−n1​−n2​)! n2​!(n−n1​)!​

⋮ \vdots ⋮

放置元素 a k a_k ak​ : 放置最后一个元素 a k a_k ak​ , 该元素有 n k n_k nk​ 个 , 此时还有 n − n 1 − ⋯ − n k − 1 n-n_1- \cdots -n_{k-1} n−n1​−⋯−nk−1​ 个空位 , 从 n − n 1 − ⋯ − n k − 1 n-n_1- \cdots -n_{k-1} n−n1​−⋯−nk−1​ 个位置中选择 n k n_k nk​ 个位置有 C ( n − n 1 − ⋯ − n k − 1 , n k ) C(n-n_1- \cdots -n_{k-1} , n_k) C(n−n1​−⋯−nk−1​,nk​) 种方法 ;

C ( n − n 1 − ⋯ − n k − 1 , n k ) = ( n − n 1 − ⋯ − n k − 1 ) ! ( n − n 1 − ⋯ − n k − 1 − n k ) !   n k ! C(n-n_1- \cdots -n_{k-1} , n_k) = \cfrac{(n-n_1- \cdots -n_{k-1})!}{(n-n_1- \cdots -n_{k-1} - n_k) ! \ n_k!} C(n−n1​−⋯−nk−1​,nk​)=(n−n1​−⋯−nk−1​−nk​)! nk​!(n−n1​−⋯−nk−1​)!​

乘法法则 : 最后根据乘法法则 , 将上述每个放置方法乘起来 , 就得到最终的结果 , 阶乘看起来很复杂 , 但是 阶乘选项如 ( n − n 1 − ⋯ − n k − 1 ) ! (n-n_1- \cdots -n_{k-1})! (n−n1​−⋯−nk−1​)! 都可以约掉 , 最终结果如下 :

N = C ( n , n 1 ) C ( n − n 1 , n 2 ) C ( n − n 1 − ⋯ − n k − 1 , n k ) = n ! ( n − n 1 ) !   n 1 ! × ( n − n 1 ) ! ( n − n 1 − n 2 ) !   n 2 ! × ( n − n 1 − ⋯ − n k − 1 ) ! ( n − n 1 − ⋯ − n k − 1 − n k ) !   n k !     约 掉 部 分 阶 乘 = n ! n 1 ! n 2 ! ⋯ n k ! \begin{array}{lcl} N & = & C(n, n_1) C(n - n_1, n_2) C(n-n_1- \cdots -n_{k-1} , n_k) \\\\ & = & \cfrac{n!}{(n-n_1) ! \ n_1!} \times \cfrac{(n-n_1)!} {(n-n_1 - n_2) ! \ n_2!} \times \cfrac{(n-n_1- \cdots -n_{k-1})!}{(n-n_1- \cdots -n_{k-1} - n_k) ! \ n_k!} \ \ \ 约掉部分阶乘 \\\\ &=& \cfrac{n!}{n_1! n_2! \cdots n_k!} \end{array} N​===​C(n,n1​)C(n−n1​,n2​)C(n−n1​−⋯−nk−1​,nk​)(n−n1​)! n1​!n!​×(n−n1​−n2​)! n2​!(n−n1​)!​×(n−n1​−⋯−nk−1​−nk​)! nk​!(n−n1​−⋯−nk−1​)!​   约掉部分阶乘n1​!n2​!⋯nk​!n!​​

三、多重集全排列示例

求多重集 S = { 3 ⋅ a , 2 ⋅ b , 1 ⋅ c } S=\{ 3 \cdot a , 2 \cdot b , 1 \cdot c \} S={3⋅a,2⋅b,1⋅c} 的全排列 ?

上述多重集元素总个数是 n = 3 + 2 + 1 = 6 n = 3 + 2 + 1 = 6 n=3+2+1=6 ;

全排列个数是 :

N = 6 ! 3 ! × 2 ! × 1 ! = 6 × 5 × 4 × 3 × 2 × 1 ( 3 × 2 × 1 ) × ( 2 × 1 ) × ( 1 × 1 ) = 60 N = \cfrac{6!}{3! \times 2! \times 1!} = \cfrac{6 \times 5 \times 4 \times 3 \times 2 \times 1}{( 3 \times 2 \times 1 ) \times ( 2 \times 1 ) \times (1 \times 1)} = 60 N=3!×2!×1!6!​=(3×2×1)×(2×1)×(1×1)6×5×4×3×2×1​=60

三、多重集非全排列 1 所有元素重复度大于排列数 ( n i ≥ r n_i \geq r ni​≥r )

多重集 :

S = { n 1 ⋅ a 1 , n 2 ⋅ a 2 , ⋯   , n k ⋅ a k } ,     0 ≤ n i ≤ + ∞ S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\infty S={n1​⋅a1​,n2​⋅a2​,⋯,nk​⋅ak​},   0≤ni​≤+∞

★ 非全排列情况 1 1 1 : r ≤ n i r \leq n_i r≤ni​ , 注意这里的 r r r 要 小于等于 最小的 n i n_i ni​ ;

N = k r N = k^r N=kr

推导过程 :

在上述条件下 ,

r r r 个位置 ,

每个位置的元素都有 k k k 种选择 ,

根据乘法法则 , 总的选择个数是 k × k × ⋯ × k ⏟ r 个 k \begin{matrix} \underbrace{ k \times k \times \cdots \times k } \\ r 个 k \end{matrix} k×k×⋯×k​r个k​ ,

即 r k r^k rk ;

四、多重集非全排列 2 某些元素重复度小于排列数 ( n i ≤ r n_i \leq r ni​≤r )

上述情况只适用于重复度足够大的情况 , 即 每个元素的重复度都大于选取个数 , r ≤ n i r \leq n_i r≤ni​

如果 有一个元素的重复度小于选取个数 , r ≥ n i r \geq n_i r≥ni​ ,

如 S = { 3 ⋅ a , 2 ⋅ b , 1 ⋅ c } S=\{ 3 \cdot a , 2 \cdot b , 1 \cdot c \} S={3⋅a,2⋅b,1⋅c} 多重集的三排列 , 就无法使用公式计算了 ,

没有公式可以计算 , 但是可以 使用 包含排斥原理 , 生成函数 进行计算 ;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3