NOIP数学--排列组合.pptVIP

  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文档。上传文档
查看更多
NOIP数学--排列组合

加法原理 若事件X能以x种方式发生,另一个不同的时间Y能以y种不同的方式发生,则事件X或者事件Y能以(x+y)种方式发生。 例:全系共三个班级,这三个班级准备参加acm竞赛的学生人数分别是3,4,5,则全系准备参加acm竞赛的人数3+4+5=12. 乘法原理 若事件X能以x种方式发生,另一个不同的事件Y能以y种不同的方式发生,则事件x和事件y能以xy种方式发生。 例:求小于10亿且不包含数字1的正整数的个数。 解: 首先计算不包含数字1的数的个数,从0,2-9中寻找9个符号的字符串,第一个数字有9种选择,第二个数字有9种选择,等等。 根据加法原理共有9^9=387420489个数,其中包括000000000.如果从100000000中减去这样的数字,得到的答案为612579511. 排列与全排列 从n个不同元素中,有次序的选取r个元素,称为从n中取r个的排列,其排列数记为P(n,r).当r=n时,称为全排列。 例如:从A,B,C,D中有序选取两个字母,则有12种选择。 AB AC AD BA BC BD CA CB CD DA DB DC P (4,2)=12. 定理:p(n,r)=n!/(n-r)! 例题:从n个不同元素中选取r个元素围成一个圆。求选取的方案总数。 解:从n个不同元素中选取r个元素选取的方案总数为p(n,r). a1—ar为其中一组解。 将其变换,a2-ar,a1;a3-ar,a1,a2;….共有r个排列。但是这n个排列对一个圆。所以题目中所求方案为p/r 组合 从n个不同元素中,选取r个元素而不考虑其次序,成为从n个中取r个的组合,记为c(n,r). 例:从(a,b,c,d)中选取出2个元素的组合,则有如下情况: (a,b)(a,c) (a,d) (b,c) (b,d) (c,d) 记作 c(4,2)=6; C(n,r)=p(n,r)/r!=n!/r!(n-r)! 例题1如图所示的棋盘,若从左下角走到右上角,并且规定只能向上想右走,问共多少种方案? 排列组合生成算法 R-排列生成算法: 采用回溯法生成从n中选r个元素的所有排列情况: n个元素用1,2,…,n来表示 函数done递归的层数i表示当前正在生成排列中第i个位置的数。 函数done(i)执行时,首先判断j是否在该排列以前的几个位置上出现过,若出现则说明j不可能出现在当前位置上,此时j值增1重复以上判断,j=n时回溯;若j没有在该排列以前的位置上出现,则该位置上的值就是j,后判断递归的层数i与r的值是否相等。若i=r,输出一个新的排列并回溯。若ir,则继续进行递归。 错位排列生成算法 错位排列生成算法与r排列生成算法的不同:生成错排第i个位置上的元素时,必须保证该元素不等于i。 R-组合生成算法 从n个元素中取出r个元素的一个组合情况恰对应了r!个r-排列情况。 所以当按照元素的递增次序放置相应位置上的元素时,就可以产生从n个元素中取出r个元素的所有组合情况。 试题 购票问题: 农夫John和他的朋友们一起去参加cownty展览会,cownty展览会的门票为$50,john发现一个奇怪的现象:排队购票的2n人中,总有n个人拿的是面值$100的钞票,而另外n个人拿的是面值$50的钞票。John想知道的是在这种情况下这2n个人共有多少种排队的方法,使售票处不至于出现找不开钱的局面(假设售票处原来没有零钱)? 算法1:搜索 算法2:栈模型 算法3:递归算法 算法4:递推算法 算法5:组合算法 算法1:搜索法 使用回溯法,枚举所有情况。 变量k为记录售票处有$50的情况, 初始:k=0; 回溯:若某人手拿100钞票且k=0时,否则继续递 归。 输出“:若第2n个人购票后即递归到2n层时计算器累加1,递归结束后,计数器中变为排队总方案数。 2:栈模型 在任意时候,若第n人手持100的钞票,在此之前有M个人手持50的钞票购票,使得m=n; 即: 售票处将收到的50的钞票最终全部找出,将100的钞票全部留下,并且一旦收到一张面值为100的钞票,则一定要找出一张面值50的钞票。 栈模型表示:若一人手持50的钞票购票,相当于一个元素进栈。将问题转化为:1—n共n个元素依次进栈,问共多少中出栈顺序。 n个元素的全排列共有n!种方案,那么n!种方案是否都是可能的出栈顺序? 若a1,a2,a3,…an是可能的出栈顺序,则一定不存在这样的情况,使得ijk,且ajakai???

文档评论(0)

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

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

1亿VIP精品文档

相关文档