矩陣連乘問題
應用動態規劃演算法,將前面計算的重複值儲存,一次來推進下一步的計算,直到得到m[1][n]的值,為最少的乘法次數
m[i][j]:表示計算a[i...j]所需的最少數乘次數
m[i][j]=min(i=s[i][j]記錄斷開位置,也就是最少計算次數的中間位置。
#include
using namespace std;
void matrixchain(int *p,int n,int m[6],int s[6])
int k=5;
for(k=1;k<=5;k++)}}
}}void traceback(int i,int j,int s[6])
;int n=6,i,j;
int m[6][6]=;
int s[6][6]=;
matrixchain(p,n,m,s);
for(i=0;i<6;i++)
矩陣連乘問題
由於矩陣的乘法滿足結合律,故計算矩陣的連乘積可以有許多不同的計算次序。這中計算次序 可以用加括號的方式來確定。例如,矩陣連乘積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的最優加括號方案。證明略。但可證明該假設...
矩陣連乘問題
題目描述 給定n個矩陣 a1,a2,an 其中ai與ai 1是可乘的,i 1,2 n 1。如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數乘次數最少。例如 a1 a2 a3 a4 a5 a6 最後的結果為 a1 a2a3 a4a5 a6 最小的乘次為15125。解題思路 能用動態...