動態規劃之矩陣練乘加括號問題

2021-08-18 11:12:40 字數 545 閱讀 5089

/*

因為相乘順序會影響標量的乘法大小,所以加括號的位置非常影響乘法結果的大小

*/#include

using

namespace

std;

void matrix_chain_order(int *p,int m[1000],int s[1000],int n);

void print(int s[1000],int i,int j);

int main()

int m[1000][1000]=;//儲存最少乘積次數

int s[1000][1000]=;//儲存加括號的位置

matrix_chain_order(p,m,s,num);

print(s,1,num);

return0;}

void matrix_chain_order(int *p,int m[1000],int s[1000],int n)}}

}void print(int s[1000],int i,int j)

}

動態規劃經典問題 矩陣鏈乘

問題描述 給定n個矩陣,其中ai與ai 1是可乘的,i 1,2,3.n 1.考慮這n個矩陣的乘積。由於矩陣乘法滿足結合律,故計算矩陣的連乘積可以有許多不同的計算機次序。這種計算次序可以用加括號的方式確定。若乙個矩陣鏈乘的計算次序完全確定,這時就說該鏈乘已完全加括號。完全加括號的矩陣鏈乘可遞迴的定義如...

動態規劃 矩陣鏈乘問題分析

一.問題簡述 給定n個矩陣,其中a i 和a i 1 是可乘的,這n個矩陣的連乘積a 1 a 2 a n 由於矩陣的乘法滿足結合律,故計算矩陣的連乘積有許多不同的計算次序,而不同的計算次序,所需要計算的連乘次數也是不同的,求解連乘次數最少的矩陣連乘最優次序。輸入乙個序列p 矩陣a的維數為pi 1 p...

矩陣鏈乘 動態規劃

普通矩陣相乘 define row a 2 define col a 2 define col b 3 void matrix mul int mata row a col a int matb 2 col b int c row a col b 兩個相容矩陣相乘,相容是指矩陣a的行必須等於矩陣b的...