計算矩陣連乘積

2021-07-24 13:38:01 字數 871 閱讀 8273

時限:1000ms 記憶體限制:10000k  總時限:3000ms

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

要求計算出這n個矩陣的連乘積a1a2…an最少需要多少次乘法。

輸入輸入資料的第一行是乙個整樹n(0 < n <= 10),表示矩陣的個數。

接下來的n行每行兩個整數p,q( 0 < p,q < 100),分別表示乙個矩陣的行數和列數。 輸出

輸出乙個整數:計算連乘積最少需要乘法的次數。

輸入樣例

10 

1 2 

2 3 

3 4 

4 5 

5 6 

6 7 

7 8 

8 9 

9 10 

10 11

輸出樣例

438

#include #include using namespace std;

int n;

int p[20]; //矩陣的維數

int m[20][20]; //m[i][j]表示矩陣i到矩陣j相乘所需要的最小步驟

int s[20][20];

void matrixchain()}}

}printf("%d\n", m[1][n]);

}int main()

p[n] = col;

matrixchain();

}

計算矩陣連乘積

描述 在科學計算中經常要計算矩陣的乘積。矩陣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。要求計算出這...

計算矩陣連乘積

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

矩陣連乘積

m times n矩陣a與n times p矩陣b相乘需消耗o mnp 的時間。我們把mnp作為兩個矩陣用來相乘所需時間的測量值。在多個矩陣連乘的情況下,不同矩陣之間的計算順序不同結果雖然相同,但總共所需要的乘法數量不同。例子 a 2561 43 bigl begin 2 5 6 1 4 3 end...