- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
i=1,2,3…,t,r=r1+r2+…+ri,当r=n时, 有 n!/(n1!n2!…ni!) 其中n1表示n1个相同元素,…,ni表示ni个相同元素且n1+n2+…+ni=n。 例题5,某城市中的一处棋盘形街道,有南北方向街道(纵街)5条,东西方向街道(横街)8条,如图所示。某人从东南角走到西北角,要按最短路径走(即只能向西或向北走),共有几种走法? 问题分析: (1)某人要按最短路径由东南角走到西北角,只要走过7段纵街和4段横街就可以了。走的路线可以不同。 (2)走的线路的不同其实质就是研究7段纵街和4段横街能排列多少种不同次序,也就是多少种不同走法。在这11个元素中有7个相同元素(纵街)又有4个相同元素(横街),所以可以按照有限次重复的排列次数的公式计算走法。 (3)走法数:N=11!/(7!*4!)=330种。 (五)、输出排列 例题6,有4人照相,按照他们排列位置的不同照相,问有多少种排列方法。 要输出4个人照相排列,我们仔细观察后一个排列与前一个排列之间的关系可以发现: 设有1,2,3,…,n个数,输出它的全排列 设R=5 ,则第一个排列为 12345 第二个排列为12354 最后一个排列54321 一共有:5!=120种 ,方法是: 输出一个排列如:23154,求下一个排列方法是: 从后向前找,直找到一个顺序为止:15 J:= r ; while a[j-1]a[j] do j:=j-1 ; (4) 当找到第一个顺序为a[j-1]a[j]时,再从a[j],a[j+1],…,a[r]中找出一个比a[j-1]大的最小数 a[p] p:=j ; for k:=j+1 to r do if ( a[k]a[j-1] ) and (a[k]a[p] ) then p:=k ; (5) 将a[j-1]与a[p]交换位置——23451,得到下一个排列。 (6) 当得到排列为54321时,则再也找不到这样的数为止。 三 组合 组合问题的研究目的之一是:根据已知条件求出所有的不同组合的种数。组合也分为非重组合和重组合。 (一)?? 非重组合 非重组合是指组合中的每一个元素最多只能允许出现一次。那么什么是组合呢。 组合一般是指从n个不同元素中取r 个元素的不同组合的数目。 它与排列算法不同在于排列不仅需要考虑不同元素,而且需要考虑元素所在的不同位置;组合则仅仅考虑不同元素组合,不考虑元素位置。10个人握手A与B握手和B与A握手认为是同一种方式,计数1次;而两个人照相则是:A在左B在右与B在左A在右是两张不同的照片,计数2次。 组合数的计算公式:C(n, r)= n!=n*(n-1)*(n-2)*……*3*2*1。 例如当n=4,r=3,用c(n,r) 表示为c(4,3),即从4个元素中取3个元素的组合数,结果为4种组合。设4个元素用1,2,3,4表示,4种组合是: 1 2 3 1 2 4 1 3 4 2 3 4 所以从n个不同元素中任选r个元素的组合就等于从n个不同元素中任选r个元素的排列除以r个元素的全排列。 在组合计算式中,当r=0或者r=n 时, 则C(n,0)=1, C(n,n)=1 例题11,在15个学生中任选4人组成代表队,参加国际象棋比赛,并要使得学生A和学生B至少有一个是4人中的成员,问共有多少种方法? 问题分析: (1)如果仅是从15人中选择4人参加竞赛,则其选择方法有C(15,4); (2)若要使得A学生或B学生至少有一个是4人成员: (3)将A,B都排除在外的代表队数目是: C(13 ,4)。 因此选择总数时:C(15, 3 )—C(13,4) =650种 上面讨论的问题是从不同元素中选取不重复的组合问题。若从n个不同元素中取r个允许重复的元素而不考虑次序的简称。允许重复的组合记作H(n,r)或者记作C(n+r-1, r )。 允许重复组合的典型模型是把r 个相同颜色的球放到n个编号不同的盒子中去,而且每个盒子的放球数不加限制,其方法种数是: C(n+r-1, r )=(n+r-1)! /( r! * (n-1)! ) * * 问题分析及算法设计 一、高精度计算问题 二、排列组合问题 三、分治算法问题 四、回溯算法问题 五、动态规划问题 高精度计
文档评论(0)