矩阵连乘.zip

  • hello world J
    了解作者
  • C/C++
    开发工具
  • 377KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-05-24 17:39
    上传日期
该程序为矩阵连乘算法,这个算法更加方便快捷。
矩阵连乘.zip
  • 矩阵连乘.exe
    1.3MB
  • 矩阵连乘.cpp
    1.7KB
内容介绍
#include <bits/stdc++.h> using namespace std; int m[100][100]; int s[100][100]; int p[100]; int MatrixChain(int *p,int n) { for (int i = 1; i <= n; i++) {m[i][i] = 0;}//初始化单个矩阵的乘法次数都为0 for (int r = 2; r <= n; r++)//r为矩阵连乘的长度,即矩阵个数 for (int i = 1; i <= n - r+1; i++) {//i为矩阵连乘的起点 int j=i+r-1; //j为终点 m[i][j] = m[i][i]+ m[i+1][j]+ p[i-1]*p[i]*p[j]; s[i][j] = i; for (int k = i+1; k < j; k++) {//找出更优的乘法次数 int t = m[i][k] + m[k+1][j] + p[i-1]*p[k]*p[j]; if (t < m[i][j]) { m[i][j] = t; s[i][j] = k; } } } return m[1][n]; } void print_optimal(int i,int j) { if (i == j) { cout << " A[" << p[i - 1] << "," << p[i] << "]"; } else { cout << " ( "; print_optimal(i, s[i][j]); print_optimal(s[i][j] + 1, j); cout << " ) "; } } int main() { int n; cout<<"请输入矩阵的个数"<<endl; cin>>n; cout<<"请输入" <<n+1<<"整数个"<<endl; for(int i=0;i<=n;i++) { cin>>p[i]; } cout<<"原始数据为以下矩阵"<<endl; for(int i=0;i<n;i++) { cout<<"\t"<<p[i]<<" * "<<p[i+1]<<endl; } cout<<"m矩阵"<<endl; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { m[i][j]=MatrixChain(p,n+1); } } for (int i = 1;i <= n;i++) { for (int j = 1;j <= n;j++) { cout << m[i][j] << "\t"; } cout << endl; } cout << endl; cout << "s矩阵" << endl; for (int i = 1;i <= n;i++) { for (int j = 1;j <= n;j++) { cout << s[i][j] << "\t"; } cout << endl; } cout << "最优的运算方式的乘法次数为:" <<MatrixChain(p,n) << endl; cout << "加括号的方式为:" << endl; print_optimal(1,n); cout << endl << endl; system("pause"); }
评论
    相关推荐
    • 算法设计 矩阵连乘
      《算法分析与设计》 矩阵连乘问题的源代码和可执行文件
    • 矩阵连乘问题
      给定n个矩阵{A1, A2, …,An},其中,Ai与Ai+1是可乘的,计算这n个矩阵连乘积。从中找出一种乘次数最少的计算次序。
    • 矩阵连乘问题
      给定n个矩阵{A1, A2, …,An},其中,Ai与Ai+1是可乘的,计算这n个矩阵连乘积。从中找出一种乘次数最少的计算次序。
    • 经典矩阵连乘算法
      用C++写的完整的矩阵连乘算法的实现,完整的工程。最经典的动态规划问题的算法实现。
    • 矩阵连乘问题
      你的任务是要确定矩阵连乘的运算次序,使计算这n个矩阵的连乘积A1A2…An时总的元素乘法次数达到最少。 例如:3个矩阵A1,A2,A3,阶分别为10×100、100×5、5×50,计算连乘积A1A2A3时按(A1A2)A3所需的元素乘法...
    • 矩阵连乘问题
      矩阵连乘,输出m[i][j]和s[i][j],以及矩阵连乘的加括号形式
    • 矩阵连乘问题
      给定n个矩阵A1,A2,…,An,其中,Ai与Aj+1是可乘的,i=1,2,…,n-1。确定矩阵连乘的运算次序,使计算这n个矩阵的连乘积A1A2…An时总的元素乘法次数达到最少。
    • 矩阵连乘算法
      关于矩阵连乘算法的代码,供他人参考,也让这个算法更加完善。
    • 矩阵连乘.zip
      实现计算多个矩阵连乘的最终结果并且对时间复杂度进行了优化
    • qpopper2.53.tar.Z
      pop3 server