问题标签 [dynamic-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1382 浏览

python - 如何轻松解决分配优化任务

我正在编写一个脚本,该脚本从 中获取元素companies并将它们与people. 目标是优化配对,使所有配对值的总和最大化(每个单独配对的值被预先计算并存储在字典中ctrPairs)。

他们都是1:1配对的,每个公司只有一个人,每个人只属于一个公司,公司的数量等于人数。我使用自上而下的方法和记忆表 ( memDict) 来避免重新计算已经解决的区域。

我相信我可以大大提高这里发生的事情的速度,但我不确定如何。我担心的区域标有#slow?,任何建议都将不胜感激(该脚本适用于列表 n<15 的输入,但对于 n > ~15,它变得非常慢)

0 投票
2 回答
1584 浏览

algorithm - 在哪里可以找到 Cormen 流水线调度的在线示例?

这是一个与学校有关的问题,虽然不完全是家庭作业。

我正在学习算法课程,目前正在学习Cormen 的算法简介一书的第 15 章。我已经成功地找到了书中大部分算法的大量在线示例,而且我通常可以找到某种类型的 Java 小程序或其他程序,它们可以很好地可视化算法的工作原理。

一个例外是第 15 章(动态编程)中的装配线调度。

有没有人知道任何在线资源可以提供组装流水线调度算法的进一步示例或可视化?

0 投票
10 回答
142371 浏览

algorithm - 什么是动态规划?

什么是动态规划

它与递归、记忆等有何不同?

我已经阅读了关于它的维基百科文章,但我仍然不太了解它。

0 投票
3 回答
6105 浏览

parallel-processing - 并行动态规划

是否有任何好的论文讨论如何采用动态程序并将其并行化?

0 投票
3 回答
1376 浏览

ruby - 我想向 Ruby 对象添加一个带有闭包的单例方法

我希望将单例方法添加到特定对象。我希望当第一次调用对象上的实例方法时,它会做一些工作,然后为所述同名对象(包含工作)创建一个单例方法。在对所述对象的所有后续调用中,单例方法将隐藏实例方法并被调用。

我知道如何创建单例方法,我的问题是我希望创建单例方法来调用 lambda(l在本例中)。def 不创建闭包,因此在随后调用该方法时我无法引用变量 l (下面的代码)(l.call()在此示例中已注释掉)我想知道在特定对象上创建单例方法时如何创建闭包. 任何帮助,将不胜感激。谢谢你。

运行时给出以下结果:(我将 '<' 更改为 '#' 所以它们显示在 html 中)

我为万物说话,我是一个类方法

这是 Thing 对象引用的实例方法#Thing:0x1d204>

这是 Thing 对象引用的实例方法#Thing:0x1d1dc>

这是 Thing 对象中的单例方法 #Thing:0x1d204>

这是 Thing 对象中的单例方法 #Thing:0x1d1dc>

0 投票
2 回答
13964 浏览

algorithm - 在图中找到哈密顿圈的动态规划算法是什么?

什么是在无向图中找到哈密顿圈的动态规划算法?我在某处看到存在具有O(n.2^n)时间复杂度的算法。

0 投票
10 回答
33140 浏览

algorithm - 阶乘的位数之和

链接到原始问题

这不是家庭作业问题。我只是认为有人可能知道这个问题的真正解决方案。

早在 2004 年我参加了一场编程比赛,就遇到了这个问题:

给定 n,求 n! 的位数之和。n 可以是 0 到 10000。时间限制:1 秒。我认为每个测试集最多有 100 个数字。

我的解决方案非常快但不够快,所以我让它运行了一段时间。它构建了一个预先计算的值数组,我可以在我的代码中使用这些值。这是一个黑客,但它有效。

但是有一个人用大约 10 行代码解决了这个问题,它很快就会给出答案。我相信这是某种动态规划,或者来自数论的东西。那时我们 16 岁,所以它不应该是一门“火箭科学”。

有谁知道他可以使用什么样的算法?

编辑:如果我没有把问题说清楚,我很抱歉。正如 mquander 所说,应该有一个聪明的解决方案,没有 bugnum,只需简单的 Pascal 代码、几个循环、O(n 2 ) 或类似的东西。1 秒不再是限制。

我在这里发现如果 n > 5,则 9 除以阶乘的数字总和。我们还可以找到数字末尾有多少个零。我们可以使用它吗?

好的,来自俄罗斯的编程竞赛的另一个问题。给定 1 <= N <= 2 000 000 000,输出 N!模(N+1)。这有什么关系吗?

0 投票
2 回答
4242 浏览

algorithm - 动态规划问题

我正在寻找有关动态编程问题的一些指示。我找不到任何有关如何解决此类问题的相关信息。我知道如何使用动态编程解决的唯一一种问题是当我有两个序列并创建这些序列的矩阵时。但我不知道如何将其应用于以下问题......

如果我有一个集合 A = {7,11,33,71,111} 和一个数字 B。那么作为 A 的子集的 C 包含来自 A 的元素,这些元素构成总和 B。

例子:

感谢这里的任何帮助,我只是不知道在解决这类问题时如何思考。我也找不到任何通用方法,只有一些关于基因序列的例子和类似的东西。

0 投票
5 回答
92368 浏览

algorithm - 想了解动态编程的人的一个简单示例

我正在为想要学习动态编程的人寻找一个易于理解的示例。关于什么是动态编程,这里有很好的答案。斐波那契数列就是一个很好的例子,但它太小而无法触及表面。虽然我还没有上过算法课,但它看起来是一个很好的学习主题,希望它在我春季的清单上。

0 投票
1 回答
431 浏览

java - Java 需要帮助实现一个算法

这个算法对于我的基本编程技能来说是如此先进,以至于我只是不知道如何实现它。我将其发布在一个新问题中,因为我不能一直打扰在上一个问题的评论部分中单独给我算法的人。

也感谢mehrdad的算法。

对我来说,这里的问题是实现两条总和线的一部分,我该怎么做?我需要标记这个算法选择的每个节点。它只是节点类中设置为 true 的“标记”变量。我不明白它是否也做出了选择节点的决定?

编辑以包括我的代码到目前为止:

这似乎有效,现在还剩下什么。是否实际上将节点标记为已选择?我会那样做吗?


更新了代码:

提交后,我将发布整个代码!