動態演算法 矩陣鏈演算法

2021-10-05 06:12:12 字數 396 閱讀 1183

catalan數  我自己講不清楚

請看這篇部落格:  

遞迴演算法是將大問題拆分成小問題

動態演算法是迭代演算法,將小問題推成大問題

矩陣鏈演算法,求出兩個矩陣相乘的運算次數,在此基礎上的三個矩陣相乘(用之前的兩個矩陣,再頭尾兩個矩陣相乘後,再相加),等等,在此基礎上,最後所有矩陣相乘求出最少次數.

步長(幾個矩陣相乘),所有矩陣按照步長劃分成幾(矩陣數-步長)組(每組求出最少次數),每組(步長)內劃分,例如按四的步長,劃分為2 * 2 還是1 * 3, 還是3 * 1 

圖來自老師的學習資料

時間複雜度o(n^3)

**:

演算法13 動態規劃矩陣鏈乘法

矩陣鏈乘法是動態規劃裡面使用到的乙個例子 1 兩個矩陣的計算 那麼對於乙個矩陣的乘法,首先如果是兩個矩陣的乘法,那麼如何實現呢?注意到我們使用二維陣列表示矩陣,但是二維陣列不能作為函式的返回值。具體實現如下 1 include 2 include 3 include 4 5 define a row...

演算法導論 動態規劃之矩陣鏈乘法

原題見pdf204頁 a0a1a2a3a4a5 定義 a i 的維數為p i p i 1 m i j 為重a i 乘到a j 標量乘法運算的最小次數。m i j 0,當i j時 加入要求解的是m 0 2 則m 0 2 為m 0 0 m 1 2 p 0 p 1 p 3 m 0 1 m 2 2 p 0 ...

動態規劃之矩陣鏈相乘問題(演算法導論)

問題描述 給定n個矩陣序列,a1,a2,a3,a4,an 計算他們的乘積 a1a2a3.an.由於矩陣的乘法運算符合結合律,因而可以通過調整計算順序,從而降低計算量。樣例分析 比如有三個矩陣分別為 a1 10 100,a2 100 5,a3 5 50 假如現在按照 a1a2 a3的順序計算需要的計算...