Ruby优化数组中的对象选择
我有一个数组对象(散列,200-300个轨迹),每个对象都有一个属性(整数秒)。我希望随机选择对象,使其属性之和等于给定值(例如3600秒) 我尝试过:选择随机对象并将其持续时间相加,直到达到总平均持续时间。然后找到最适合最终“槽”的最终曲目。然而,这似乎是一个相当尴尬的做法,它并不总是工作Ruby优化数组中的对象选择,ruby,arrays,algorithm,hash,Ruby,Arrays,Algorithm,Hash,我有一个数组对象(散列,200-300个轨迹),每个对象都有一个属性(整数秒)。我希望随机选择对象,使其属性之和等于给定值(例如3600秒) 我尝试过:选择随机对象并将其持续时间相加,直到达到总平均持续时间。然后找到最适合最终“槽”的最终曲目。然而,这似乎是一个相当尴尬的做法,它并不总是工作 我肯定有更好的算法来完成这样的任务,我真的不知道如何表达我对它的搜索。这里有一个非常好的解决方案: 这很容易适应我的问题。搜索背包问题可能会抛出一些有用的算法,尽管你对随机性的要求可能意味着你需要调整它们
我肯定有更好的算法来完成这样的任务,我真的不知道如何表达我对它的搜索。这里有一个非常好的解决方案:
这很容易适应我的问题。搜索
背包问题
可能会抛出一些有用的算法,尽管你对随机性的要求可能意味着你需要调整它们。在实践中,虽然这是一个计算困难的问题,但它的算法可能需要做相当多的工作,或者与问题的描述相比相当复杂。您的解决方案似乎相当合理-您可以通过检查可能的交换来扩展它,以接近目标时间。随机方面将使用大量额外的CPU时间。“背包问题”是我要寻找的术语,谢谢各位。我会看看我是否能拼凑一些东西,稍后作为答案提交。再次感谢。