- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二、动态规划算法的应用
班级:计072
学号:3070911052
姓名:赵凯
一、实验目的与实验内容
1、掌握动态规划算法的基本设计思想与原则。
2、最长公共子序列、0-1背包,找零钱
二、实验要求
1.用C++/C完成算法设计和程序设计并上机调试通过。
2.撰写实验报告,提供实验结果和数据。
3.分析算法,要求给出具体的算法分析结果,包括时间复杂度和空间复杂度,并简要给出算法设计小结和心得。
三、程序实现
最长公共子序列:对字符串X和Y,首先构建子问题最有值的递归关系。用c[i][j]记录序列Xi和Yj的最长公共子序列的长度。其中Xi={x1,x2,…,xi};Yj={y1,y2,…,yj}.当i=0或j=0时,空序列就是Xi和Yj的最长公共子序列。故此时c[i][j]=0.其他情况下,由最优子结构性质可建立递归关系如下:
0 i=0,j=0
c[i][j]= c[i-1][j-1]+1 i,j0;xi=yj
max{c[i][j-1],c[i-1][j]} i,j0;xi=yj
0-1背包问题:设所给0-1背包问题的子问题
max∑nk=ivkxk
∑nk=ivkxk=j
xk∈{0.1},i=k=n
的最优值为m(i,j),即m(i,j)是背包容量为j,可选择物品为i,i+1,…,n时0-1背包问题的最优值。由0-1背包问题的最优子结构性质,可以建立计算m(i,j)的递归式如下:
m(i,j)= max{m(i+1,j),m(i+1,j-wi)+vi} j=wi
m(i+1,j) 0=jwi
vn j=wn
m(n,j)= 0 0=jwn
找零钱:在这次实验中,由于听错实验的最后一个题目,所以找零钱的这个实验我是完全参照0-1背包问题的。
时间复杂度:
最长公共子序列:计算最优值c[i][j]的算法设计中,双层循环外规模为m,内规模为n,所以计算它的时间复杂度为0(mn).
0-1背包与找零钱:由他的递归表达式可得时间复杂度为0(nc).
四、心得体会通过此次实验,我的最深感触就是对算法的思想一定要理解,不然只是徒劳。刚开始做实验时,我什么也没看,直接拿着题目就凝思苦想,然而没有头绪。在把课本上的东西看了之后,通过仔细查看动态规划的思想,我明白了如何规划问题,如何解决问题。关键还是要做到心里有底,然后才能胸有成竹,
五、源程序清单。最长公共子序列:
#includeiostream
using namespace std;
void LCSLength(int m,int n,char x[],char y[],int c[][8],int b[][8])//求最优值
{
int i,j;
for(i=1;i=m;i++)c[i][0]=0;
for( i=1;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]=1;
}
else if(c[i-1][j]=c[i][j-1])
{
c[i][j]=c[i-1][j];
b[i][j]=2;
}
else {
c[i][j]=c[i][j-1];
b[i][j]=3;
}
}
}
void LCS(int i,int j,char x[],int b[][8])//求最优解
{
if(i==0||j==0)return;
if(b[i][j]==1){
LCS(i-1,j-1,x,b);
coutx[i];
}
else if(b[i][j]==2)LCS(i-1,j,x,b);
else LCS(i,j-1,x,b);
}
int main()
{
char x[8];
char y[7];
int c[8][8]={0};
int b[8][8]={0};
coutinput string xendl;//输入字符串x
for(int i=0;i9;i++)
cinx[i];
coutendl;
coutinput string yendl;//输入字符串y
for(int j=0;j8;j++)
ciny[j];
coutendl;
LCSLength(7,6,x,y,c,b);
coutthe best value:endl;
for( i=
您可能关注的文档
- 第八单元数学广角X.doc
- 第八单元测试题MicrosoftWord文档.doc
- 第八单元简单排列与组合教案.doc
- 第八套-《志愿服务与志愿者精神试题》.doc
- 第八届河南省中小学电脑制作活动.doc
- 第八章《体育基础理论》的命题.doc
- 第八章二元一次方程组综合检测题D.doc
- 第八章幂的运算单元评估测试卷(含答案).doc
- 第八章微生物的遗传和变异复习题解.doc
- 第八章查找习题数据结构.doc
- 主题课程整理大班上.doc
- 2026人教版小学语文三年级上册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学语文四年级下册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学二年级上册数学期末综合试卷精选3套(含答案解析).docx
- 2026人教版小学语文四年级上册期末综合试卷3套(含答案解析).docx
- 2026人教版小学二年级下册数学期末综合试卷3套(打印版含答案解析).docx
- 2026年地理信息行业年终总结汇报PPT.pptx
- 板块四第二十一单元封建时代的欧洲和亚洲 中考历史一轮复习.pptx
- 中考历史一轮复习:板块四第二十单元古代亚、非、欧文明+课件.pptx
- 第二次工业革命和近代科学文化中考历史一轮复习.pptx
最近下载
- 23S516 混凝土排水管道基础及接口 .docx VIP
- 《金属材料去应力退火技术》课件.ppt VIP
- 水利水电工程专业土石坝的评估和修复外文文献翻译及原文.doc VIP
- 读后续写--藏在衣袖下的秘密,终获袒露与和解 讲义-江苏省苏州市2024-2025年高三上学期学业质量阳光指标调研卷英语试题.docx VIP
- CRIA 0003.3-2016 工业机器人专用电缆 第3部分:工业机器人弯扭布线用护套电缆.pdf VIP
- 河北省对口升学计算机专业理论试题附答案.doc VIP
- 特灵风冷式冷水(热泵)机组手册.pdf VIP
- 新技术新项目开展.ppt VIP
- 闽南师范大学《应用回归分析》2022-2023学年第一学期期末试卷.doc VIP
- 消防车驾驶员行车安全.pptx VIP
原创力文档


文档评论(0)