有人可以用选择的编程语言(最好是 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/