高中信息技术 全国青少年奥林匹克联赛教案 排列与组合 (2).doc_第1页
高中信息技术 全国青少年奥林匹克联赛教案 排列与组合 (2).doc_第2页
高中信息技术 全国青少年奥林匹克联赛教案 排列与组合 (2).doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

排列与组合课题:排列与组合目标:知识目标:如何利用程序就各种排列和组合 能力目标:排列组合的运用重点:求出n的全排列和从m中取n个的组合难点:算法的理解板书示意:1) 求全排列的算法2) 求组合数的算法授课过程:例5:有3个人排成一个队列,问有多少种排对的方法,输出每一种方案?分析:如果我们将3个人进行编号,分别为1、2、3,显然我们列出所有的排列,123,132,213,231,312,321共六种。可用循环枚举各种情况,参考程序:program exam5;var i,j,k:integer;begin for i:=1 to 3 do for j:=1 to 3 do for k:=1 to 3 do if (i+j+k=6) and (i*j*k=6) then writeln(i,j,k);end.上述情况非常简单,因为只有3个人,但当有n个人时怎么办?显然用循环不能解决问题。下面我们介绍一种求全排列的方法。设当前排列为p1 p2 ,pn,则下一个排列可按如下算法完成:1求满足关系式pj-1 pj的j的最大值,设为i,即i=maxj | pj-1 pj , j = 2.n2求满足关系式pi -1 pk的k的最大值,设为j,即j=maxk | pi-1 pk , k = 1.n3pi -1与pj互换得 (p) = p1 p2 ,pn4(p) = p1 p2 , pi-1 pi, pn部分的顺序逆转,得p1 p2 , pi-1 pn pn-1, pi便是下一个排列。例:设p1 p2 p3 p4 =34211i= maxj | pj-1 pj , j = 2.n = 22j=maxk | pi-1 pk , k =1.n = 23p1与p2交换得到432144321的321部分逆转得到4123即是3421的下一个排列。程序设计如下:program exam5;const maxn = 100;var i,j,m,t : integer; p : array1.maxn of integer; count :integer; 排列数目统计变量begin write(m:);readln(m); for i:=1 to m do begin pi:=i; write(i) end; writeln; count:=1; repeat求满足关系式pj-1 1) and (pi-1=pi) do dec(i); if i=1 then break; 求满足关系式pi -1 0) and (pi-1=pj) do dec(j); if j=0 then break; pi -1与pj互换得 (p) = p1 p2 ,pm t:=pi-1;pi-1:=pj;pj:=t;pi, pm的顺序逆转 for j:=1 to (m-i+1) div 2 do begin t:=pi+j-1;pi+j-1:=pm-j+1;pm-j+1:=t end; 打印当前解 for i:=1 to m do write(pi); inc(count); writeln; until false; writeln(count)end.例6:求n个人选取m个人出来做游戏,共有多少种取法?例如:n=4,m=2时,有12,13,14,23,24,34共六种。分析:因为组合数跟顺序的选择无关。因此对同一个组合的不同排列,只需取其最小的一个(即按从小到大排序)。因此,可以设计如下算法:1最后一位数最大可达n,倒数第二位数最大可达n-1,依此类推,倒数第k位数最大可达n-k+1。若r个元素组合用c1c2 cr表示,且假定c1c2 cr, cr=n-r+i, i=1,2,r。2当存在cjn-r+j时,其中下标的最大者设为i,即i=maxj | cjn-r+j,则作ci := ci +1,与之对应的操作有ci+1 := ci +1 ,ci+2 := ci +1+1 ,. ,cr := cr-1 +1参考程序:program exam6;const maxn=10;var i,j,n,m :integer; c :array1.maxnof integer; c数组记录当前组合beginwrite(n & m:); readln(n,m); for i:=1 to m do begin初始化,建立第一个组合 ci:=i; write(ci); end; writeln; while c1n-m+1) and ( j0) do dec(j);求i=maxj | cjn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论