/*
因為相乘順序會影響標量的乘法大小,所以加括號的位置非常影響乘法結果的大小
*/#include
using
namespace
std;
void matrix_chain_order(int *p,int m[1000],int s[1000],int n);
void print(int s[1000],int i,int j);
int main()
int m[1000][1000]=;//儲存最少乘積次數
int s[1000][1000]=;//儲存加括號的位置
matrix_chain_order(p,m,s,num);
print(s,1,num);
return0;}
void matrix_chain_order(int *p,int m[1000],int s[1000],int n)}}
}void print(int s[1000],int i,int j)
}
動態規劃經典問題 矩陣鏈乘
問題描述 給定n個矩陣,其中ai與ai 1是可乘的,i 1,2,3.n 1.考慮這n個矩陣的乘積。由於矩陣乘法滿足結合律,故計算矩陣的連乘積可以有許多不同的計算機次序。這種計算次序可以用加括號的方式確定。若乙個矩陣鏈乘的計算次序完全確定,這時就說該鏈乘已完全加括號。完全加括號的矩陣鏈乘可遞迴的定義如...
動態規劃 矩陣鏈乘問題分析
一.問題簡述 給定n個矩陣,其中a i 和a i 1 是可乘的,這n個矩陣的連乘積a 1 a 2 a n 由於矩陣的乘法滿足結合律,故計算矩陣的連乘積有許多不同的計算次序,而不同的計算次序,所需要計算的連乘次數也是不同的,求解連乘次數最少的矩陣連乘最優次序。輸入乙個序列p 矩陣a的維數為pi 1 p...
矩陣鏈乘 動態規劃
普通矩陣相乘 define row a 2 define col a 2 define col b 3 void matrix mul int mata row a col a int matb 2 col b int c row a col b 兩個相容矩陣相乘,相容是指矩陣a的行必須等於矩陣b的...