程式執行的結果是:
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 設最優計算次...