[自然科学]组合数学之排列组合生成算法.pptVIP

[自然科学]组合数学之排列组合生成算法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[自然科学]组合数学之排列组合生成算法

* (d) 按照上述方法, 依次分别生成以 N1N2? N5, N1N2? N4, ?, N1N2, N1 打头的所有排列为止. (2) 生成以N2打头的所有排列 (a) 先将基准排列N1N2?Nn-1Nn从左向 右依顺时针方向轮转一次, 生成排列 N2?Nn-1Nn N1 (b)然后按(1)的方法和步骤生成以N2打 头的所有排列. * (3) 生成以N3打头的所有排列 (a)先将基准排列基准排列N1N2?Nn-1Nn从左向右依顺时针方向轮转两次, 生成以下排列N3?Nn-1Nn N1 N2 (b)然后按(1)的方法和步骤生成以N3打头的所有排列. (4) 依次类推, 按同样方法依次生成以N4,N5,?,Nn-1,Nn打头的所有排列. 到此整个算法结束. * 二. 组合生成算法 组合的生成要比排列容易. 我们将给出组合生成的标准算法. 先观察从1,2,…,6中任意取3个数的组合. 01 123 02 124 03 125 04 126 05 134 06 135 07 136 08 145 09 146 10 156 11 234 12 235 13 236 14 245 15 246 16 256 17 345 18 346 19 356 20 456 * 上述的组合等于按照字典序排列好了. 每个组合c1c2c3满足条件1?c1 c2 c3?6. c3最大可以到6, c2最大可以到5, c1最大可以到4. 如果每个数都已经达到最大, 那就结束了. 如果没有, 就找最右面一个还没有达到最大值的数, 给这个数依次分别加1,2,…,r-j+1得到下一个组合. 重复这个过程就可以得到整个组合. * 设要按字典序决定集合S=?1,2,?,n?的全体r组合. 设S的一个r组合为a1,a2,?,ar, 且1? a1? a2? ? ? ar ?n. 若a1,a2,?,ar等于n-r+1, n-r+2, ?, n, 则它已经是最后一个组合. 若a1,a2,?,ar不等于n-r+1, n-r+2, ?, n, 设i是使ajn-r+j的最大整数. 则按字典序紧跟a1,a2,?,ar的r组合是 a1, ?, ai-1, ai+1, ai+2, ?, ai+(r-i+1) * 由这个原理, 从一个组合a1, a2, ?, ar到下一个组合的算法可以描述如下: S1. 求使ajn-r+j的最大下标i. 即 i=max{j|ajn-r+j} S2. ai? ai+1 S3. aj? aj-1+1, j=i+1, i+2, …, r. * 例2.6 试生成S=?1,2,3,4,5,6,7?的5组合. 解 可以利用上面的算法来生成: 12345, 12346, 12347, 12356, 12357, 12367, 12456, 12457, 12467, 12567, 13456, 13457, 13467, 13567, 14567, 23456, 23457, 23467, 23567, 24567, 34567 其组合数C=(7,5)=21. * 允许重复的排列--- 多重集的排列 多重集—元素可以多次出现的集合,即元素可以重复。我们把某个元素ai出现的次数ni(ni=0,1,2,…)叫做该元素的重复数,通常把含有k种不同元素的多重集S记作 * 可重排列 定义 从一个多重集 中有序选取的r个元素叫做S的一个r-(可重)排列。当 时也叫做S的一个排列. * 定理 设多重集 则的r-(可重)排列数是 r k * 例 求4位数的二进制数的个数 解:所求的标志数是多重集{2红旗,3黄旗}的排列 数,故N=5!/(2!*3!)=10 例 用两面红旗,三面黄旗依次悬挂在一根旗杆上,问可以组成多少种不同的标志? * 允许重复的组合----可重组合 允许重复(可重)的组合是指从 中取r个元素 , 允许重复,即允许 的数同时出现于一个组合中的组合,其全体记为C(n,r),其 个数记为C(n,r) 定理1.2 从 中取r个作可重的组合,其个数为C(n+r-1,r) * 定理1.2证明 C(n,r)的计数问题相当于r相同的球放入n个互异的盒子,每个盒子中球数不加限制的方案的计数。而后一问题又可转换为r个相同的球与n-1个相同的盒壁的排列的问题。 易知所求计数为 = C(n+r-1,r) (n-1+r)! ———— r!(n-1)!

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档