python - 按长度查找匹配组的轨道

标签 python algorithm knapsack-problem

有人可以用选择的编程语言(最好是 Python,但我想任何东西都可以)想出一个解决这个问题的方法:

我有各种轨道长度组,比方说:

10:03
24:23
...

和源轨道本身:

1:03
9:00
4:24
...

我需要务实地找到属于上述长度组的轨道。例如,前两个轨道属于第一组,因为它们的总长度等于组长度

提前致谢

编辑:这不是我的功课,因为那个时间早已过去(我已经 30 多岁了),但这是我遇到的问题,而且我不是程序员。我会看看 itertools,谢谢

edit2:感谢您的建议。我制作了 Python 脚本,如果对我来说工作得很好而且很快。它肯定没有优化,但这是框架:

from itertools import combinations

tracks = [1,2,3,4,5,6,7,8,9]
group = 7

d_key, valid_tracks, possible_group =0, [], {}

for i in sorted(tracks):
    if i < group: valid_tracks.append(i)

for j in range(len(valid_tracks) - 2):
    for k in combinations(valid_tracks, len(valid_tracks) - 1 - j):
        if sum(k) <= group:
            if sum(k) == group:
                d_key += 1
                possible_group[d_key] = k

print possible_group

我很高兴我解决了这个问题,因为手动跟踪这个问题比我一生要花的时间还多,哈哈

最佳答案

查看Python的itertools模块:

http://docs.python.org/library/itertools.html

支持计算轨道所有可能的permutations()和combinations()。

剩下的由你决定(而不是做你真正的功课)。

关于python - 按长度查找匹配组的轨道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5684908/

相关文章:

python - 如何用 Python 中的其他多项式替换多项式中的 x?

algorithm - 避免战舰随机放置算法中的死胡同

algorithm - 分组排序算法帮助

algorithm - 打印背包中袋子里的元素

algorithm - 几乎没有约束的背包问题变体

python - 通过 Python 仅返回 Google 搜索结果的数量

python - Cartopy 混合投影和重叠绘制图像数据

python - 创建一个包含多行条件的列

c++ - 贝尔曼福特实现 C++

python - 背包问题(优化后无法正常工作)