矩陣連乘問題

2021-09-19 03:29:35 字數 785 閱讀 7850

矩陣連乘問題:

給定n個連乘的矩陣,找出一種加括號的方法,使得矩陣連乘的計算量(乘法次數)最小

矩陣可乘:第乙個矩陣的列等於第2矩陣的行時,那麼這這兩個矩陣是可乘的

多個矩陣相乘的結果矩陣,其行,列分別等於第乙個矩陣的行,最後乙個矩陣的列;

最優值遞迴式

m[i][j],當i = j m[i][j] = 0

當iint n;

int p[

100]

;int m[

100]

[100

], s[

100]

[100];

void

matrixchain()

}}}}

void

print

(int i,

int j)

cout <<

"(";

print

(i, s[i]

[j])

;print

(s[i]

[j]+

1, j)

; cout <<

")";

}int

main()

matrixchain()

;print(1

, n)

; cout << endl;

cout <<

"最小計算值為:"

<< m[1]

[n]<< endl;

system

("pause");

return0;

}

矩陣連乘問題

矩陣連乘問題 應用動態規劃演算法,將前面計算的重複值儲存,一次來推進下一步的計算,直到得到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的最優加括號方案。證明略。但可證明該假設...