矩陣連乘問題

2021-07-25 19:02:46 字數 725 閱讀 7618

題目描述:給定n個矩陣{a1,a2,…,an},其中ai與ai+1是可乘的,i=1,2 ,…,n-1。如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數乘次數最少。例如:

a1= ; a2= ;a3= ;a4= ;a5= ;a6= ;

最後的結果為:((a1(a2a3))((a4a5)a6))  最小的乘次為15125。

解題公式:

/*

從連乘矩陣個數為2開始計算每次的最小乘次數m[i][j]: m[0][1] m[1][2] m[2][3] m[3][4] m[4][5]

//m[0][1]表示第乙個矩陣與第二個矩陣的最小乘次數,然後再計算再依次計算

連乘矩陣個數為3:m[0][2] m[1][3] m[2][4] m[3][5]

連乘矩陣個數為4:m[0][3] m[1][4] m[2][5]

連乘矩陣個數為5:m[0][4] m[1][5]

連乘矩陣個數為6:m[0][5] //即最後我們要的結果

*/#include#define n 6

int p[n+1]=;

int trace(int a[n]){

int m[n][n];

int i,j;

for(i=0;i

矩陣連乘問題

矩陣連乘問題 應用動態規劃演算法,將前面計算的重複值儲存,一次來推進下一步的計算,直到得到m 1 n 的值,為最少的乘法次數 m i j 表示計算a i.j 所需的最少數乘次數 m i j min i s i j 記錄斷開位置,也就是最少計算次數的中間位置。include using namespa...

矩陣連乘問題

由於矩陣的乘法滿足結合律,故計算矩陣的連乘積可以有許多不同的計算次序。這中計算次序 可以用加括號的方式來確定。例如,矩陣連乘積a1a2a3a4可以有5種不同的完全加括號方式 a1 a2 a3a4 a1 a2a3 a4 a1a2 a3a4 a1 a2a3 a4 a1a2 a3 a4 矩陣a和b可乘的條...

矩陣連乘問題

矩陣連乘問題 問題分析 最優子結構性質假設n個矩陣連乘的最優加括號方案為 a1.ak ak 1.an 注 此處省略了a1.ak,ak 1.an兩個子矩陣內部的括號 則加括號方案 a1.ak 是子矩陣鏈a1.ak的最優加括號方案,ak 1.an 是ak 1.an的最優加括號方案。證明略。但可證明該假設...