計算矩陣連乘積 動態規劃 c

2021-09-27 23:55:45 字數 810 閱讀 8735

題目描述:在科學計算中經常要計算矩陣的乘積。矩陣a和b可乘的條件是矩陣a的列數等於矩陣b的行數。若a是乙個p×q的矩陣,b是乙個q×r的矩陣,則其乘積c=ab是乙個p×r的矩陣。由該公式知計算c=ab總共需要pqr次的數乘。其標準計算公式為:

現在的問題是,給定n個矩陣。其中ai與ai+1是可乘的,i=1,2,…,n-1。要求計算出這n個矩陣的連乘積a1a2…an,最少的乘法次數。

遞迴公式:

**如下:

#includeusing namespace std;

#define max 100

int m[max][max];//記錄輸入矩陣最佳連乘方法

int s[max][max];//記錄最佳方法的斷開位置

void matrixchain(int *p, int n)}}}

void traceback(int i, int j)

}int main()

cout << endl;

} cout << "最佳斷開位置矩陣s:" << endl;

for (int i = 1; i <= t; i++)

cout << endl;

} cout << "最佳相乘方法為:"輸入輸出示例:

學習中,歡迎交流,指導

計算矩陣連乘積

描述 在科學計算中經常要計算矩陣的乘積。矩陣a和b可乘的條件是矩陣a的列數等於矩陣b的行數。若a是乙個p q的矩陣,b是乙個q r的矩陣,則其乘積c ab是乙個p r的矩陣。計算c ab總共需要p q r次乘法。現在的問題是,給定n個矩陣。其中ai與ai 1是可乘的,i 1,2,n 1。要求計算出這...

計算矩陣連乘積

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述在科學計算中經常要計算矩陣的乘積。矩陣a和b可乘的條件是矩陣a的列數等於矩陣b的行數。若a是乙個p q的矩陣,b是乙個q r的矩陣,則其乘積c ab是乙個p r的矩陣。計算c ab總共需要p q r次乘法。現在的問題是,給定n個...

計算矩陣連乘積

在科學計算中經常要計算矩陣的乘積。矩陣a和b可乘的條件是矩陣a的列數等於矩陣b的行數。若a是乙個p q的矩陣,b是乙個q r的矩陣,則其乘積c ab是乙個p r的矩陣。由該公式知計算c ab總共需要pqr次的數乘。其標準計算公式為 現在的問題是,給定n個矩陣。其中ai與ai 1是可乘的,i 1,2,...