首页 最长公共子序列_实验报告

最长公共子序列_实验报告

举报
开通vip

最长公共子序列_实验报告最长公共子序列_实验报告 王典 学号Y201005009 最长公共子序列_实验报告 一、设计分析 , 问题描述: 若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公...

最长公共子序列_实验报告
最长公共子序列_实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 王典 学号Y201005009 最长公共子序列_实验报告 一、 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 分析 , 问题描述: 若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。给定2个序列X= {x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列(LCS)。 , 设计思路: 设X=(x1,...xm), Y=(y1,y2,...yn)是两个序列,Z=(z1,z2,...zk)是X与Y的LCS。下列结论成立: ? 如xm=yn, 则zk=xm=yn, Zk-1是Xm-1和Yn-1的LCS,即, LCSXY=LCSXm-1Yn-1+. ? 若xm?yn,且zk?xm,则Z是Xm-1和Y的LCS,即 LCSXY=LCSXm-1Y 若xm?yn,且zk?yn,则Z是X与Yn-1的LCS,即 ? LCSXY=LCSXYn-1 由此可见,2个序列的最长公共子序列包含了这2个序列的前缀的最长公共子序列。因此,最长公共子序列问题具有最优子结构性质。 由最长公共子序列问题的最优子结构性质建立子问题最优值的递归关系。用c[i][j]记录序列xi和yj的最长公共子序列的长度。其中, Xi={x1,x2,…xi};Yj={y1,y2,…,yj}。当i=0或j=0时,空序列是Xi和Yj的最长公共子序列。故此时C[i][j]=0。其它情况下,由最优子结构性质可建立递归关系如下: ,00,0ij,, ,cijcijijxy[][][1][1]1,0;,,,,,,,ij ,max[][1],[1][],0;cijcijijxy,,,,,,ij, 二、程序代码 c语言实现 #include #include #define N 20 void LCSLength(int m,int n,char x[N+1],char y[N+1],char b[N+1][N+1]); void LCS(int i,int j,char x[N+1],char b[N+1][N+1]); 1 王典 学号Y201005009 { int i,j,s,t; int c[N+1][N+1]; for (i=0;i<=m;i++) c[i][0]=0; for (i=0;i<=n;i++) c[0][i]=0; for (i=1;i<=m;i++) for (j=1;j<=n;j++) { if (x[i]==y[j]) { c[i][j]=c[i-1][j-1]+1; b[i][j]='A'; } else if (c[i-1][j]>=c[i][j-1]) { c[i][j]=c[i-1][j]; b[i][j]='U'; } else 2 王典 学号Y201005009 { c[i][j]=c[i][j-1]; b[i][j]='L'; } } for (s=0;s<=m;s++) { for (t=0;t<=n;t++) printf("%d",c[s][t]); printf("\n"); } printf("length=%d\n",c[m][n]); } void LCS(int i,int j,char x[],char b[N+1][N+1]) { if (i==0 || j==0) return; if (b[i][j]=='A') { LCS(i-1,j-1,x,b); printf("%c",x[i]); } else if (b[i][j]=='U') LCS(i-1,j,x,b); else LCS(i,j-1,x,b); } 3 王典 学号Y201005009 三、测试用例 四、实验 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 通过本实验加深了对动态规划算法的理解,总结出动态规划算法的一般步骤: 1、找出最优解的性质,并刻划其结构特征。 2、递归地定义最优值。 3、以自底向上的方式计算出最优值。 4、根据计算最优值时得到的信息,构造最优解。 4
本文档为【最长公共子序列_实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_196623
暂无简介~
格式:doc
大小:23KB
软件:Word
页数:5
分类:生活休闲
上传时间:2017-09-30
浏览量:87