Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby优化数组中的对象选择_Ruby_Arrays_Algorithm_Hash - Fatal编程技术网

Ruby优化数组中的对象选择

Ruby优化数组中的对象选择,ruby,arrays,algorithm,hash,Ruby,Arrays,Algorithm,Hash,我有一个数组对象(散列,200-300个轨迹),每个对象都有一个属性(整数秒)。我希望随机选择对象,使其属性之和等于给定值(例如3600秒) 我尝试过:选择随机对象并将其持续时间相加,直到达到总平均持续时间。然后找到最适合最终“槽”的最终曲目。然而,这似乎是一个相当尴尬的做法,它并不总是工作 我肯定有更好的算法来完成这样的任务,我真的不知道如何表达我对它的搜索。这里有一个非常好的解决方案: 这很容易适应我的问题。搜索背包问题可能会抛出一些有用的算法,尽管你对随机性的要求可能意味着你需要调整它们

我有一个数组对象(散列,200-300个轨迹),每个对象都有一个属性(整数秒)。我希望随机选择对象,使其属性之和等于给定值(例如3600秒)

我尝试过:选择随机对象并将其持续时间相加,直到达到总平均持续时间。然后找到最适合最终“槽”的最终曲目。然而,这似乎是一个相当尴尬的做法,它并不总是工作


我肯定有更好的算法来完成这样的任务,我真的不知道如何表达我对它的搜索。

这里有一个非常好的解决方案:


这很容易适应我的问题。

搜索
背包问题
可能会抛出一些有用的算法,尽管你对随机性的要求可能意味着你需要调整它们。在实践中,虽然这是一个计算困难的问题,但它的算法可能需要做相当多的工作,或者与问题的描述相比相当复杂。您的解决方案似乎相当合理-您可以通过检查可能的交换来扩展它,以接近目标时间。随机方面将使用大量额外的CPU时间。“背包问题”是我要寻找的术语,谢谢各位。我会看看我是否能拼凑一些东西,稍后作为答案提交。再次感谢。