矩陣鏈乘法

2021-06-07 01:13:32 字數 809 閱讀 4286

設m[i][j]為計算矩陣ai..j所需標量乘法運算次數的最小值。對整個問題計算ai..n的最小代價就是m[i,n].
使用輔助表是s[1..n,1..n]來記錄計算m[i,j]時取得最優代價處k的值。k是裂開的位置。
#include#define n 6

void matrix(int *p,int m[n+1],int s[n+1],int n);

void output(int s[n+1],int,int);

void display(int s[n+1],int,int);

int main()

; int m[n+1][n+1];

int s[n+1][n+1];

matrix(p,m,s,n);

puts("鏈開次序:");

display(s,1,n);

puts("\n最優加括號形式:");

output(s,1,n);

puts("");

system("pause");

return 0;

}void matrix(int *p,int m[n+1],int s[n+1],int n)

for(int l=2;l<=n;l++)

else

display(s,i,s[i][j]);

display(s,s[i][j]+1,j);

}void output(int s[n+1],int i,int j)

else

}

矩陣鏈乘法

a1,a2.an,n個矩陣,矩陣ai的維數為p i 1 p i 資料矩陣鏈乘法加全部括號,使得計算乘法的次數最少 對矩陣ai,ai 1,其維數分別為p i 1 p i p i p i 1 ai ai 1要執行乘法運算的次數為p i 1 p i p i 1 m i j 為矩陣ai ai 1 aj最少的...

矩陣鏈乘法

題目難度 對於矩陣鏈乘法這道題目,我們先明確乙個概念 對於n各需要相乘的矩陣所構成的 鏈 要計算其乘積a1a2.an。我們需要對其加上n 1個括號,來確定其運算順序。例 明白括號概念之後,我們還需明白何為矩陣相乘。矩陣相乘或不如稱為縱橫相乘,意思就是對於p q,以及q r的兩個矩陣,對於第乙個矩陣的...

矩陣鏈乘法

輸入 ai是矩陣 輸出 計算a1 a2 an的最小代價方法 優化解的代價方程 for l 2 to n do 計算地l對角線 for i 1 to n l 1 do j i l 1 m i,j for k i to j 1 do 計算m i,j q m i,k m k 1,j pi 1pkpj if...