矩陣連乘演算法java實現

2021-05-08 10:16:19 字數 1572 閱讀 1421

程式執行的結果是:

0    15750    7875     9375    11875    15125

0    0        2625     4375    7125     10500

0    0        0        750     2500     5375

0    0        0        0       1000     3500

0    0        0        0       0        5000

0    0        0        0       0        0

簡單介紹一下**:

int p

儲存矩陣的資訊

,   

比如:int p = ;

表示有六個矩陣

,第乙個是

30*35,

一次類推

int m

儲存計算過程中所得的最小乘法次數,比如

m[0][3]

表示從第乙個矩陣連乘到第

4個矩陣的最少乘法次數

,(注意陣列的開始

index為0)

計算過程主要是有

clac

這個方法實現

:大致的計算過程如下:

最外側的迴圈會執行

length-1次,

在第一執行後

,結果如下:

0    15750    0        0       0        0

0    0        2625     0       0        0

0    0        0        750     0        0

0    0        0        0       1000     0

0    0        0        0       0        5000

0    0        0        0       0        0

這個結果表示,第

n個矩陣和第

n+1個矩陣的乘所需要的最小乘法次數

. 比如第乙個矩陣和第二個矩陣相乘所消耗的乘法次數是

15750,

結果儲存在

m[0][1],

計算的公式是

m[0][0] + m[1][1] + p[0]*p[1]*p[3],

即0+0+15750

其他的計算一次類推

當執行第二次迴圈的時候

,結果是:

0    15750    7875     0       0        0

0    0        2625     4375    0        0

0    0        0        750     2500     0

0    0        0        0       1000     3500

0    0        0        0       0        5000

0    0        0        0       0        0

Ruby實現的矩陣連乘演算法

動態規劃解決矩陣連乘問題,隨機產生矩陣序列,輸出形如 a1 a2a3 a4a5 的結果。encoding utf 8 begin author xu jin,4100213 date oct 28,2012 matrixchain to find an optimum order by using ...

Java演算法3 動態規劃演算法實現矩陣連乘

一 需求 1 編寫用動態規劃演算法實現矩陣連乘的類。2 編寫乙個測試類,給出矩陣鏈的階,求計算該矩陣鏈乘積的完全加括號方式的最小代價,用二維表的形式輸出各子矩陣鏈的最優值。二 實現源程式 1 演算法實現類程式 public class matrix 構造最優解 public void traceba...

矩陣連乘問題java版

author yuyuntan 譚淇蔚 定義陣列p i p i 的含義有兩層 指的是 1.第i個矩陣的列 2.第i 1個矩陣的行 思路 步驟 劃分階段 子問題 並刻畫 將原問題劃分成兩個子問題。如果原問題獲得最優值。則子問題的應該也是最優的。將矩陣連乘積a1a2a3a4簡記為a 1 n 設最優計算次...