标签: ruby arrays algorithm hash
我有一个数组对象(哈希,200-300个轨道),每个对象都有一个属性(整数秒)。我想选择一个随机选择的对象,以便它们的属性总和等于给定值(例如3600秒)。
我尝试过:选择随机对象&总结它们的持续时间,直到达到总平均持续时间。然后找到最适合最后“槽”的最终曲目。然而,这似乎是一种相当尴尬的方式,它并不总是工作。
我确定有一个更好的算法来完成这样的任务,我只是不知道如何表达我对它的搜索。
答案 0 :(得分:0)
这里提供了一个非常好的解决方案:
http://rosettacode.org/wiki/Knapsack_problem/0-1#Dynamic_Programming
这很容易适应我的问题。