问题标签 [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.
python - 如何轻松解决分配优化任务
我正在编写一个脚本,该脚本从 中获取元素companies
并将它们与people
. 目标是优化配对,使所有配对值的总和最大化(每个单独配对的值被预先计算并存储在字典中ctrPairs
)。
他们都是1:1配对的,每个公司只有一个人,每个人只属于一个公司,公司的数量等于人数。我使用自上而下的方法和记忆表 ( memDict
) 来避免重新计算已经解决的区域。
我相信我可以大大提高这里发生的事情的速度,但我不确定如何。我担心的区域标有#slow?
,任何建议都将不胜感激(该脚本适用于列表 n<15 的输入,但对于 n > ~15,它变得非常慢)
algorithm - 在哪里可以找到 Cormen 流水线调度的在线示例?
这是一个与学校有关的问题,虽然不完全是家庭作业。
我正在学习算法课程,目前正在学习Cormen 的算法简介一书的第 15 章。我已经成功地找到了书中大部分算法的大量在线示例,而且我通常可以找到某种类型的 Java 小程序或其他程序,它们可以很好地可视化算法的工作原理。
一个例外是第 15 章(动态编程)中的装配线调度。
有没有人知道任何在线资源可以提供组装流水线调度算法的进一步示例或可视化?
parallel-processing - 并行动态规划
是否有任何好的论文讨论如何采用动态程序并将其并行化?
ruby - 我想向 Ruby 对象添加一个带有闭包的单例方法
我希望将单例方法添加到特定对象。我希望当第一次调用对象上的实例方法时,它会做一些工作,然后为所述同名对象(包含工作)创建一个单例方法。在对所述对象的所有后续调用中,单例方法将隐藏实例方法并被调用。
我知道如何创建单例方法,我的问题是我希望创建单例方法来调用 lambda(l
在本例中)。def 不创建闭包,因此在随后调用该方法时我无法引用变量 l (下面的代码)(l.call()
在此示例中已注释掉)我想知道在特定对象上创建单例方法时如何创建闭包. 任何帮助,将不胜感激。谢谢你。
运行时给出以下结果:(我将 '<' 更改为 '#' 所以它们显示在 html 中)
我为万物说话,我是一个类方法
这是 Thing 对象引用的实例方法#Thing:0x1d204>
这是 Thing 对象引用的实例方法#Thing:0x1d1dc>
这是 Thing 对象中的单例方法 #Thing:0x1d204>
这是 Thing 对象中的单例方法 #Thing:0x1d1dc>
algorithm - 在图中找到哈密顿圈的动态规划算法是什么?
什么是在无向图中找到哈密顿圈的动态规划算法?我在某处看到存在具有O(n.2^n)
时间复杂度的算法。
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)。这有什么关系吗?
algorithm - 动态规划问题
我正在寻找有关动态编程问题的一些指示。我找不到任何有关如何解决此类问题的相关信息。我知道如何使用动态编程解决的唯一一种问题是当我有两个序列并创建这些序列的矩阵时。但我不知道如何将其应用于以下问题......
如果我有一个集合 A = {7,11,33,71,111} 和一个数字 B。那么作为 A 的子集的 C 包含来自 A 的元素,这些元素构成总和 B。
例子:
感谢这里的任何帮助,我只是不知道在解决这类问题时如何思考。我也找不到任何通用方法,只有一些关于基因序列的例子和类似的东西。
algorithm - 想了解动态编程的人的一个简单示例
我正在为想要学习动态编程的人寻找一个易于理解的示例。关于什么是动态编程,这里有很好的答案。斐波那契数列就是一个很好的例子,但它太小而无法触及表面。虽然我还没有上过算法课,但它看起来是一个很好的学习主题,希望它在我春季的清单上。