免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验:矩阵相乘最小代价顺序实验描述:多个矩阵相乘按照不同的结合相乘得到的相乘次数会有不同,求出一种顺序使得最后完成多个矩阵相乘相乘次数最少的相乘办法,把相乘的次数输出,相乘的顺序输出。输入时按顺序输入各个相乘矩阵的维数,如M1(10*20) * M2(20*50) * M3(50*1) *M4(1*100) 可表示为10 20 50 1 100。实验思路:本题可用典型的动态规划思想解决,用mij表示矩阵Mi *Mi+1 *Mj的最小代价。那么i=j时,mij=0即不用相乘,j!=i时,mij=MIN(mik+mk+1j+rirk+1rj+1),其中i=kj;r数组中储存着输入时对应的维数,如实验描述中r1=10/代表第一个矩阵的行数;r2=20/代表第二个矩阵的行数.r5=100/代表最后一个矩阵的列数。以上思路即可解决最小相乘次数的求出。还需求出相乘的顺序,以如下的形式表示出来:(A1*(A2*A3)*A4按照这种形式输出,那么只需建立一个数组a,大小比矩阵个数大一,分别对应Ai的”(“或”)”的个数。用sij表示Mi到Mj矩阵相乘的断点。实验复杂度分析:程序中需要三重循环,计算次数:0+(0+1)+(0+1+2)+(0+1+2+3)+(0+1+2+3+4)+.+(0+1+2+N)=N+(N-1)*2+(N-2)*3+.+N约为N(3)因为申请了两个N*N 的数组空间,空间复杂度:N(2).实验代码:#include#include#include#define MAX 100const int t=0;int N;int aMAX;int pMAX;int mMAXMAX;int sMAXMAX;void stop(int m,int n)int k;if(n=m+1|n=m)/*at+=n;*/return;k=smn;/printf(%dn,k);if(k!=m)ak-;am+;if(k+1!=n)ak+1+;an-;stop(m,k);stop(k+1,n);void main()int i,j,k,min,temp;printf(请输入总矩阵的个数:n);scanf(%d,&N);printf(请输入每个矩阵的维数:n);for(i=1;i=N+1;i+)scanf(%d,&pi);memset(a,0,sizeof(a);for(j=1;j0;i-)if(i=j)mij=0;sij=i;elsemin=32767;for(k=i;kj;k+)temp=mik+mk+1j+pi*pk+1*pj+1;if(tempmin)min=temp;sij=k;mij=min;printf(代价:%d次n顺序为:,m1N);stop(1,N);for(i=1;i=0)for(j=1;j=ai;j+)printf();if(i=N) printf(A%d,i);else printf(A%d*,i);else printf(A%d,i);for(j=1;j=fabs(ai);j+)printf();if(i!=N)printf(*);printf(n);实验结果: 求两个字符串的最大的公共子序列实验描述:给出两个字符串,如asdfg ,和 axdcfg ,那么他们的公共子序列为adfg,长度为4即找出两个字符串中相同的未打乱顺序的最长子序列。实验思路:本题可以用动态规划的思想解决。用lenij表示第一个字符串的前i个字符与第二个字符串前j个字符的最大公共序列长度。当ai=bj时,lenij=leni-1j-1+1;当ai!=bj时,lenij=MAX(lenij-1,leni-1j);用fatherij表示lenij是由leni-1j-1+1; lenij-1;还是leni-1j得来。用于找到最长公共子序列是哪些字符组成。实验复杂度分析:因为要遍历所有的len空间求出每个的值,所以时间复杂度近似为:O(m*n)因为建立了两个(m+1)*(n+1)的空间,所以空间复杂度为:O(m*n)实验代码:#include#include#define MAX 1000int lenMAXMAX;int fatherMAXMAX;void main()char aMAX,bMAX,cMAX;int i,j,m,n,t=0;printf(输入第一个字符串;n);scanf(%s,a);printf(输入第一个字符串;n);scanf(%s,b);m=strlen(a);n=strlen(b);for(i=0;i=m;i+)len0i=0;father0i=0;for(i=0;i=n;i+)leni0=0;fatheri0=0;for(i=1;i=n;i+)for(j=1;jlenij-1)lenij=leni-1j;fatherij=2;else lenij=lenij-1;fatherij=3;printf(最长公共序列为:%dn此序列为:,lennm);i=n;j=m;while(1)if(fatherij=1)ct+=bi-1;i-;j-;else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于粗集理论的虚拟企业合作伙伴精准选择策略研究
- 基于粗糙集与支持向量机融合的工业企业经济景气指数智能预测模型构建与实证研究
- 基于第三方和零售商回购的逆向供应链决策:模型构建、案例分析与仿真优化
- 返乡干部笔试考试题及答案
- 电气照明技术试题及答案
- 2025年北京事业考试真题及答案
- 2025年急救知识竞赛试卷及答案
- 执医助理笔试题库及答案
- 2025年昭阳区会考数学真题及答案
- 小微信贷员安全技能测试竞赛考核试卷含答案
- 香料调味培训课件图片
- 软件工程形形考作业3:基于UML的大学图书馆图书信息管理系统设计实验
- 中国帝王蟹行业市场规模及投资前景预测分析报告
- 意识形阵地管理制度
- 促进民族团结 同步练习 -道德与法治九年级上册
- 凉山州中医药保护条例课件
- 炸鸡店的网络推广与社会化营销
- 全国高校(985、211)查询表模板
- 催收公司培训管理制度
- 北京校医考试试题及答案
- 重庆高硅氧玻璃纤维项目投资分析报告范文
评论
0/150
提交评论