首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >利用矩阵链乘法求有效成本时给出无穷大的结果

利用矩阵链乘法求有效成本时给出无穷大的结果
EN

Stack Overflow用户
提问于 2021-01-30 10:38:54
回答 1查看 143关注 0票数 0

我试着理解矩阵链乘法。特别是问题Given a sequence of matrices, find the most efficient way to multiply these matrices together.

我尝试了以下方法,但它为结果打印了一些无限值。我做错了什么?

代码语言:javascript
运行
复制
const p = [1, 2, 3, 4, 3];

function mcm(m, i, j) {
 if (i >= j) return 0;
 else {
    let ans = Number.MAX_VALUE;
    let temp;
    for (let k = i; k < j - 1; k++) {
       temp = mcm(m, i, k) + mcm(m, k + 1, j) + m[i - 1] * m[k] * m[j];
       if (ans > temp) ans = temp;
    }
    return ans;
 }
}

console.log(mcm(p, 1, p.length - 1));

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-30 12:24:34

该错误处于for循环的结束状态:

代码语言:javascript
运行
复制
for (let k = i; k < j - 1; k++) {

它应该是:

代码语言:javascript
运行
复制
for (let k = i; k < j; k++) {

原因是j包含在要检查的范围内,所以k应该上升到并包含j-1

您正在接近无穷大,因为在代码中有些情况下,循环根本不执行迭代(当j-i==1时),然后函数将返回Number.MAX_VALUE,这说明了您得到的输出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65966995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档