文章目录

  • 一、多重集
  • 二、多重集全排列
  • 三、多重集全排列示例
  • 三、多重集非全排列 1 所有元素重复度大于排列数 ( ni≥rn_i \geq rni​≥r )
  • 四、多重集非全排列 2 某些元素重复度小于排列数 ( ni≤rn_i \leq rni​≤r )

排列组合参考博客 :

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

一、多重集


多重集表示 :

S={n1⋅a1,n2⋅a2,⋯,nk⋅ak},0≤ni≤+∞S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\inftyS={n1​⋅a1​,n2​⋅a2​,⋯,nk​⋅ak​},   0≤ni​≤+∞

  • 元素种类 : 多重集中含有 kkk 种不同的元素 ,
  • 元素表示 : 每个元素表示为 a1,a2,⋯,aka_1 , a_2 , \cdots , a_ka1​,a2​,⋯,ak​ ,
  • 元素个数 : 每个元素出现的次数是 n1,n2,⋯,nkn_1, n_2, \cdots , n_kn1​,n2​,⋯,nk​ ,
  • 元素个数取值 : nin_ini​ 的取值要求是 大于 000 , 小于正无穷 +∞+ \infty+∞ ;

二、多重集全排列


多重集 :

S={n1⋅a1,n2⋅a2,⋯,nk⋅ak},0≤ni≤+∞S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\inftyS={n1​⋅a1​,n2​⋅a2​,⋯,nk​⋅ak​},   0≤ni​≤+∞

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

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

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

下面是推导过程

有 kkk 种元素 ,

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

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

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

C(n−n1,n2)=(n−n1)!(n−n1−n2)!n2!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⋮

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

C(n−n1−⋯−nk−1,nk)=(n−n1−⋯−nk−1)!(n−n1−⋯−nk−1−nk)!nk!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−n1−⋯−nk−1)!(n-n_1- \cdots -n_{k-1})!(n−n1​−⋯−nk−1​)! 都可以约掉 , 最终结果如下 :

N=C(n,n1)C(n−n1,n2)C(n−n1−⋯−nk−1,nk)=n!(n−n1)!n1!×(n−n1)!(n−n1−n2)!n2!×(n−n1−⋯−nk−1)!(n−n1−⋯−nk−1−nk)!nk!约掉部分阶乘=n!n1!n2!⋯nk!\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=6n = 3 + 2 + 1 = 6n=3+2+1=6 ;

全排列个数是 :

N=6!3!×2!×1!=6×5×4×3×2×1(3×2×1)×(2×1)×(1×1)=60N = \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)} = 60N=3!×2!×1!6!​=(3×2×1)×(2×1)×(1×1)6×5×4×3×2×1​=60

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


多重集 :

S={n1⋅a1,n2⋅a2,⋯,nk⋅ak},0≤ni≤+∞S = \{ n_1 \cdot a_1 , n_2 \cdot a_2 , \cdots , n_k \cdot a_k \} , \ \ \ 0 \leq n_i \leq +\inftyS={n1​⋅a1​,n2​⋅a2​,⋯,nk​⋅ak​},   0≤ni​≤+∞

★ 非全排列情况 111 : r≤nir \leq n_ir≤ni​ , 注意这里的 rrr 要 小于等于 最小的 nin_ini​ ;

N=krN = k^rN=kr

推导过程 :

在上述条件下 ,

rrr 个位置 ,

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

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

即 rkr^krk ;

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


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

如果 有一个元素的重复度小于选取个数 , r≥nir \geq n_ir≥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} 多重集的三排列 , 就无法使用公式计算了 ,

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

【组合数学】排列组合 ( 多重集排列 | 多重集全排列 | 多重集非全排列 所有元素重复度大于排列数 | 多重集非全排列 某些元素重复度小于排列数 )相关推荐

  1. 【Math】排列组合

    排列组合 百科名片 加法 & 乘法原理 加法原理 乘法原理 排列与组合基础 排列数 组合数 二项式定理 排列与组合进阶篇 多重集的排列数 | 多重组合数 多重集的组合数 1 多重集的组合数 2 ...

  2. 信奥中的数学:排列组合

    排列组合题型总结课程(一) 排列组合题型总结课程(一)_哔哩哔哩_bilibili 排列组合的公式 排列组合的公式_百度知道 [Manim动画]如何以可视化视角直观理解排列组合? [Manim动画]如 ...

  3. 程序员必备算法,排列组合

    还记得排列组合吗? 在高中的时候最常接触的莫过于排列组合了,毕竟高考必考的嘛.我们先来回忆下这两个的公式是啥: 排列组合公式 如果看到这个还有一丢丢的印象,说明大家的基础都还不错.那么问题来了,大家都 ...

  4. 【C】 4个数排列组合

    使用VS2019 ISO C++14 标准 (/std:c++14) 4个数排列组合 //有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? //本练习不涉及报错处理机制! #incl ...

  5. html错位排列,排列组合之错位重排

    [导读] 中公事业单位为帮助各位考生顺利通过事业单位招聘考试!今天为大家带来事业单位判断推理:排列组合之错位重排. 一.知识点简述 错位重排,可以理解为把n个不同元素进行重新排列,使得每个元素都不在自 ...

  6. itertools库常用高效迭代器一览表,帮你快速实现数据的排列组合【python】

    itertools库常用高效迭代器一览表,帮你快速实现数据的排列组合 文档: https://docs.python.org/zh-cn/3/library/itertools.html iterto ...

  7. C++复习(五)——排列组合杨辉三角

    题目六:排列组合,五本书分给三个人,每人一本,至多有多少种不同的分法 题目七:输出杨辉三角 1         1   1       1   2   1     1   3   3   1   1 ...

  8. 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )

    文章目录 一.多重集组合示例 二.三个计数模型 排列组合参考博客 : [组合数学]基本计数原则 ( 加法原则 | 乘法原则 ) [组合数学]集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | ...

  9. 【组合数学】排列组合 ( 多重集组合数 | 所有元素重复度大于组合数 | 多重集组合数 推导 1 分割线推导 | 多重集组合数 推导 2 不定方程非负整数解个数推导 )

    文章目录 一.多重集组合 ( 所有元素重复度大于组合数 ) 二.多重集组合 所有元素重复度大于组合数 推导 1 ( 分割线推导 ) 二.多重集组合 所有元素重复度大于组合数 推导 2 ( 不定方程非负 ...

最新文章

  1. 道路 [NOIP模拟]
  2. C++继承中父类和子类之间的赋值兼容
  3. windows环境下 curl 安装和使用
  4. mac使用的正确操作与注意事项(人体工程学)
  5. Oracle死锁情况
  6. 6s android,Android死忠粉自述为何必买iPhone 6S
  7. windows server 2016部署wsus服务
  8. JavaScript的高大强
  9. Pandas系列(三)新增数据列
  10. 关于找回CSDN账号的一点遐想
  11. 计算机颜色的概念,颜色空间
  12. android systrace log,Android优化之Systrace
  13. 根据前序序列和中序序列重建二叉树
  14. 范德堡大学计算机科学专业,美国范德堡大学的专业排名
  15. 『梦想城镇』终极攻略
  16. flash activex java_Adobe flash player ActiveX和NPAPI和PPAPI 这三个软件有什么区别?哪个是不必要的?...
  17. 计算机考研需要过英语六级吗,研究生毕业要过英语六级吗 研究生毕业对英语六级有要求吗...
  18. Oozie 工作流定义详解【转】
  19. SQL查询中文字符及标点符号
  20. 关于video++,jsrun,有道笔记等的感想

热门文章

  1. Oracle配置方面问题收集
  2. Glide和Picasso的区别
  3. mysql 表查询注意
  4. python:argparse命令行解析模块详解
  5. k-means-algorithm
  6. noip2016 小结(ac两题+学习总结)
  7. [转]Chrome 控制台console的用法
  8. 运行nltk示例 Resource u'tokenizers punkt english.pickle' not found解决
  9. 计算机科学与技术导论
  10. arch Linux 安装完,无法通过 SSH 远程连接 root 用户问题