收藏 分销(赏)

矩阵连乘算法 c++.doc

上传人:xrp****65 文档编号:9430515 上传时间:2025-03-26 格式:DOC 页数:3 大小:20KB
下载 相关 举报
矩阵连乘算法 c++.doc_第1页
第1页 / 共3页
矩阵连乘算法 c++.doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述
#include <iostream> #include <iomanip> using namespace std; class MatrixChain { public: MatrixChain(int *q,int mSize); ~MatrixChain(); int MChain(); void print(); private: void print(int i,int j); int *p; int **m,**s; int n; }; void MatrixChain::print(int i,int j) { if(i==j) { cout<<char('A'+i); return; } if(i<s[i][j]) cout<<'('; print(i,s[i][j]); if(i<s[i][j]) cout<<')'; if(j>s[i][j]+1) cout<<'('; print(s[i][j]+1,j); if(j>s[i][j]+1) cout<<')'; } void MatrixChain::print() { //cout<<'('; print(0,n-1); //cout<<')'; } int MatrixChain::MChain() { for(int i=0;i<n;i++) { m[i][i]=0; s[i][i]=0; } for(int r=2;r<=n;r++) { for(int i=0;i<=n-r;i++) { int temp=0; int j=i+r-1; s[i][j]=i; m[i][j]=m[i+1][j]+p[i]*p[i+1]*p[j+1]; for(int k=i+1;k<j;k++) { temp=m[i][k]+m[k+1][j]+p[i]*p[k+1]*p[j+1]; if(temp<m[i][j]) { m[i][j]=temp; s[i][j]=k; } } } } return m[0][n-1]; } MatrixChain::MatrixChain(int *q, int mSize) { n=mSize; p=new int [n+1]; for(int i=0;i<n+1;i++) p[i]=q[i]; m=new int *[n]; s=new int *[n]; for(int i=0;i<n;i++) { m[i]=new int[n]; s[i]=new int[n]; } } MatrixChain::~MatrixChain() { delete []p; for(int i=0;i<n;i++) { delete []m[i]; delete []s[i]; } delete []m; delete []s; } void main() { int p[7]={30,35,15,5,10,20,25}; MatrixChain mc(p,6); cout<<mc.MChain()<<endl; mc.print(); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服