




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3. Program ex403; Const NN=7; Type Arr1=array0.30 of char; var s:arr1; k,p:integer; function fun1(s:arr1; a:char;n:integer):integer; var j:integer; begin j:=n; while (a0) do dec(j); dec(j)j:=j-1fun1:=j; end; Function fun2(s:arr1; a:char; n:integer):integer; var j:integer; begin j:=1; while (asj)and(j0) then begin n2:=n mod 10; write(n2:2); if(m1) then digit(n div 10,m div 10); n2:=n mod 10; write(n2:2); end; end; begin writeln(Input a number:); readln(x); x2:=1; while(x2x) do x2:=x2*10; x2:=x2 div 10; digit(x,x2); writeln; end. 输入:9734526 输出:_ 五完善程序 (前5空,每空2分,后6空,每空3分,共28分) 1(选排列)下面程序的功能是利用递归方法生成从1到n(n10)的n个数中取k(1=k=n)个数的全部可能的排列(不一定按升序输出)。例如,当n=3,k=2时,应该输出(每行输出5个排列): 12 13 21 23 32 31 程序: Program ex501; Var i,n,k:integer; a:array1.10 of integer; count:longint; Procedure perm2(j:integer); var i,p,t:integer; begin if then begin for i:=k to n do begin inc(count); t:=ak; ak:=ai; ai:=t; for do write(ap:1); write( ); t:=ak;ak:=ai;ai:=t; if (count mod 5=0) then writeln; end; exit; end; for i:=j to n do begin t:=aj;aj:=ai;ai:=t; ; t:=aj; ; end end; begin writeln(Entry n,k (k4-2-1-5-3。遗传算法的核心是通过两个个体的交叉操作,产生两个新的个体。下面的程序给出了最简单的一种交叉算法。具体过程如下: (1)选定中间一段作为互换段,该段的起止下标为t1,t2,随机生成t1,t2后,互换两段。(2)互换后,在每个新的排列中可能有重复数字,因而不能作为新个体的编码,一般再做两步处理:(2.1) 将两个互换段中,共同的数字标记为0,表示已处理完。(2.2) 将两个互换段中其余数字标记为1,按顺序将互换段外重复的数字进行替换。例如:n=12,两个个体分别是: a1: 1 3 5 4 * 2 6 7 9 * 10 12 8 11 a2: 3 2 1 12 * 6 7 10 11 * 8 5 4 9 t1=5,t2=8。上述每一行中,两个星号间的部分为互换段。假定数组的下标从1开始,互换后有: a1: 1 3 5 4 * 6 7 10 11 * 10 12 8 11 a2: 3 2 1 12 * 2 6 7 9 * 8 5 4 9 然后,将数字6,7对应的项标记为0,星号内数字2,9,10,11对应的项标记为1,并且按顺序对应关系为: 102 ,119。于是,将a19=10替换为a19=2,将a22=2替换为a22=10,类似再做第2组替换。这样处理后,就得到了两个新个体: a1: 1 3 5 4 6 7 10 11 2 12 8 9 a2: 3 10 1 12 2 6 7 9 8 5 4 11 (3)输出两个新个体的编码。程序: program ex502; type arr1=array1.20 of integer; var a1,a2,kz1,kz2:arr1; n,k,t1,t2:integer; function rand1(k:integer):integer; var t:integer; begin t:=0; while (tk) do t:=random(k+1)-2; rand1:=t; end; procedure read1(var a:arr1;m:integer); 读入数组元素a1至am,a0=0,略。 procedure wrt1(var a:arr1;m:integer); 输出数组元素a1至am,略。 procedure cross(var a1,a2:arr1;t1, t2,n:integer); var i,j,t,kj:integer; begin for i:=t1 to t2 do begin t:=a1i; ; end; for i:=1 to n do if (it2) then begin kz1i:=-1;kz2i:=-1; end else begin ; end; for i:=t1 to t2 do for j:=t1 to t2 do if(a1i=a2j) then begin ; break; end; for i:=t1 to t2 do if(kz1i=1) then begin for j:=t1 to t2 do if(kz2j=1) then begin kj:=j; break; end; for j:=1 to n do if then begin a1j:=a2kj;break; end; for j:=1 to n do if then begin a2j:=a1i; break; end; kz1i:=0;kz2kj:=0; end; end; begin writeln(input (n5):); readln(n); writeln(input array 1:); read1(a1,n); writeln(input array 2:); read1(a2,n); t1:=rand1(n-1); repeat t2:=rand1(n-1); until(t1t2); if(t1t2) then begin k:=t1; t1:=t2; t2:=k; end; ; wrt1(a1,n); wrt1(a2,n); end. Answer:3. 11 4. 6 2 5 4 3 7 9 9 7 3 4 5 2 6(数字之间无空格扣 2 分)五、完善程序(前 5 空,每空 2 分,后 6 空,每空 3 分)1 j=k (或k=j)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第13课《网络安全防范》说课稿 2024-2025学年浙教版(2023)初中信息技术八年级上册
- 6.2.2 化学反应的速率与限度 第2课时 化学反应的限度 教案2023-2024学年高一化学必修第二册
- 综合复习与测试说课稿-2025-2026学年高中信息技术浙教版2019选修1 数据与数据结构-浙教版2019
- 关于疫情考试题型及答案
- 提升高性能无机材料的市场竞争力
- 高中课外考试题目及答案
- 高级模具工考试题及答案
- 2025办公租赁合同终止协议范本
- 父母考试题库及答案
- 生成式AI提升学生英语听力能力的路径探索
- 磷化工工艺流程
- 2025云南红河州红投永良矿业限公司招聘2人高频重点模拟试卷提升(共500题附带答案详解)
- 新入职教师法律法规培训
- 数字经济与就业
- 2024年-2025年司法考试真题及复习资料解析
- 幼儿园护学岗职责
- 国开电大《组织行为学》形考任务1-4
- 施工安全生产风险分级管控和隐患排查治理双重预防机制建设实施方案
- 精细化工技术-大学专业介绍
- 餐饮财务问题的研究报告
- 慢性疾病运动干预中心服务要求(征求意见稿)
评论
0/150
提交评论