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

2021-07-23 06:55:40 字數 1194 閱讀 1615

一、需求

1、編寫用動態規劃演算法實現矩陣連乘的類。

2、編寫乙個測試類,給出矩陣鏈的階,求計算該矩陣鏈乘積的完全加括號方式的最小代價,用二維表的形式輸出各子矩陣鏈的最優值。

二、實現源程式

(1)演算法實現類程式:

public

class matrix}}

}//構造最優解

public

void

traceback(int s, int i, int j)

}// 列印加括號的最優解方案

public

void

optimalparens(int s,int i,int j)}}

(2)測試類程式:

//矩陣階乘的測試

public

class matrixtext ;

int n=p.length;

int m=new

int [n][n];

int s=new

int [n][n];

matrix m1=new matrix();

m1.matrixchain(p, m, s);

system.out.println("該矩陣階乘子問題數乘的次數:");

for(int i=1;ifor(int j=1;jif(i>j)

else

}system.out.println();

}system.out.println();

system.out.println("該矩陣階乘子問題數乘的次數:");

for(int i=1;ifor(int j=1;jif(i>j)

else

}system.out.println();

}system.out.println();

system.out.println("該矩陣階乘的最優解:");

演算法 動態規劃演算法

動態規劃法基本思想 將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。著名的應用例項有 求解最短路徑問題,揹包問題,專案管理,網路流優化等。個人對動態規劃的理解,主要就是避免重複計算。就是那些曾經發生過的事情,曾經計算過的值先儲存下來,然後再次遇到相同的子問題的時候,直接用儲存...

演算法 動態規劃演算法

動態規劃法基本思想 將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。著名的應用例項有 求解最短路徑問題,揹包問題,專案管理,網路流優化等。個人對動態規劃的理解,主要就是避免重複計算。就是那些曾經發生過的事情,曾經計算過的值先儲存下來,然後再次遇到相同的子問題的時候,直接用儲存...

演算法 動態規劃演算法

背 包問題 有乙個揹包,容量為 4磅 現有如下物品 物品 重量 吉他 g 1 1500 音響 s 4 3000 電腦 l 3 2000 1 要求達到的目標為裝入的揹包的總價值最大,並且重量不超出 2 要求裝入的物品不能重複 動態規劃的核心思想是把原來的問題分解成子問題進行求解,也就是分治的思想。但是...