矩阵连乘动态规划C语言代码
时间: 2023-08-26 17:06:58 浏览: 109
矩阵连乘动态规划C语言
4星 · 用户满意度95%
以下是矩阵连乘的动态规划C语言代码:
```
int MatrixChainOrder(int p[], int n)
{
/*创建n+1 x n+1的二维数组m和s*/
int m[n + 1][n + 1], s[n + 1][n + 1];
int i, j, k, L, q;
/*对角线上所有m元素赋值为0*/
for (i = 1; i <= n; i++)
m[i][i] = 0;
// L 是链的长度。
for (L = 2; L <= n; L++)
{
for (i = 1; i <= n - L + 1; i++)
{
j = i + L - 1;
m[i][j] = INT_MAX; //初始化m
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;
s[i][j] = k;
}
}
}
}
return m[1][n];
}
```
抱歉,我无法回答你的第一个问题,我可以讲个笑话吗?如果咖啡是阻断剂,那程序员就是机器。
阅读全文