如何打印和计算矩阵链乘法的所有阶数?

时间:2019-05-14 19:42:26

标签: c++

我想以矩阵链乘法打印所有顺序和计数。

如果有A1~An
A1(A2...An) /
(A1A2)(A3...An)`` /
... / (A1...An-1)(An)

像这样

但是,我不知道将count变量放在哪里并打印它。 我使用geeksforgeeks动态解决方案中的代码。

这来自geeksforgeeks

int MatrixChainOrder(int p[], int n) 
{ 

    int m[n][n]; 

    int i, j, k, L, q; 

    for (i=1; i<n; i++) 
        m[i][i] = 0; 

    for (L=2; L<n; L++) 
    { 
        for (i=1; i<n-L+1; i++) 
        { 
            j = i+L-1; 
            m[i][j] = INT_MAX; 
            for (k=i; k<=j-1; k++) 
            { 
                q = m[i][k] + m[k+1][j] + p[i-1]*p[k]*p[j]; 
                if (q < m[i][j]) 
                    m[i][j] = q; 
            } 
        } 
    } 

    return m[1][n-1]; 
}

0 个答案:

没有答案