欢迎来到天天文库
浏览记录
ID:38631819
大小:21.50 KB
页数:4页
时间:2019-06-16
《矩阵连乘问题C++代码加注释》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#includeusingnamespacestd;#defineN100intn,q;intm[N][N],s[N][N],p[N+1];voidmatrixChain(){//动态规划计算最优值算法for(inti=1;i<=n;i++){m[i][i]=0;}for(intr=2;r<=n;r++){//对角线循环for(inti=1;i<=n-r+1;i++){//行循环intj=r+i-1;//列的控制,找m[i][j]的最小值,先初始化一下,令k=im[i][j]=m[i][i]+m[i+1][j]+p[i-1]*p[i]*p[j];s[i][j]=i;/
2、/k从i+1到j-1循环找m[i][j]的最小值for(intk=i+1;k3、){intt=Recur(i,k)+Recur(k+1,j)+p[i-1]*p[k]*p[j];//从k处断开,分别求得每次的数乘次数if(t0){returnm[i][j];}if(i==j)return0;intu=Look(i,i)+Look(i+1,j)+p[i-1]*p[i]*p[j];s[i][j]=i;for(intk=i+1;k4、p[i-1]*p[k]*p[j];//递归if(t5、raceback(s[i][j]+1,j);cout<<")";}}voidmain(){cout<<"输入矩阵个数:n=";cin>>n;cout<<"输入第一个矩阵行数和第一个到第n个矩阵的列数:";for(inti=0;i<=n;i++){cin>>p[i];}cout<>q6、;cout<7、m[1][n]<
3、){intt=Recur(i,k)+Recur(k+1,j)+p[i-1]*p[k]*p[j];//从k处断开,分别求得每次的数乘次数if(t0){returnm[i][j];}if(i==j)return0;intu=Look(i,i)+Look(i+1,j)+p[i-1]*p[i]*p[j];s[i][j]=i;for(intk=i+1;k4、p[i-1]*p[k]*p[j];//递归if(t5、raceback(s[i][j]+1,j);cout<<")";}}voidmain(){cout<<"输入矩阵个数:n=";cin>>n;cout<<"输入第一个矩阵行数和第一个到第n个矩阵的列数:";for(inti=0;i<=n;i++){cin>>p[i];}cout<>q6、;cout<7、m[1][n]<
4、p[i-1]*p[k]*p[j];//递归if(t
5、raceback(s[i][j]+1,j);cout<<")";}}voidmain(){cout<<"输入矩阵个数:n=";cin>>n;cout<<"输入第一个矩阵行数和第一个到第n个矩阵的列数:";for(inti=0;i<=n;i++){cin>>p[i];}cout<>q
6、;cout<7、m[1][n]<
7、m[1][n]<
此文档下载收益归作者所有