基礎題 矩陣連乘問題

2022-08-20 17:21:08 字數 844 閱讀 4844

矩陣連乘問題:

先考察3

個矩陣連乘,設這三個矩陣的維數分別為

10×100

,100×5

,5×50

。若按((

a1a2)a3

)方式需要的數乘次數為

10×100×5

+10×5×50

=7500

,若按(a1(

a2a3

))方式需要的數乘次數為

100×5×50

+10×100×50

=75000

。矩陣連乘問題是《演算法導論》的一道經典題目;

思想:將一系列相乘的矩陣(ai....aj)劃分為兩部分;即(aia

i+1...a

k)(a

k+1a

k+2....aj),k的位置要保證左邊括號和右邊括號相乘的消耗最小。劃分為解子問題,並符合動態規劃條件,詳解還是看演算法導論吧!

1

int func32(int a, intn)2

1516

for (j=1; j< n; j++)

1725

for (k=i; k)

2632}33

}34}35

36 tmp = m[1*n+ n-1

];37

38delete m;

3940

return

tmp;

41 }

居然這道題也要折騰了哥n久的時間,而且現在都感覺那裡不正確。。。。

p.s.本文就是為以後的題目作引用的,用於區別其他的題目,在對比中體會其中的思想;並經典的題目總給我們提供乙個思想原型,以不變應萬變。

矩陣連乘問題

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