題目描述:在科學計算中經常要計算矩陣的乘積。矩陣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,...