例如:在计算旅行商问题的蛮力解决方案时,您不需要所有排列,只需要排列集的前半部分。 (下半场都是上半场的逆转)。
基本上,我试图设置这个:
iter_a = itertools.permutations([3, 4, 5, 2, 1, 6])
list_a = list(iter_a)
desired_set = list_a[:len(list_a)//2]
以最可能的方式。
答案 0 :(得分:0)
由于排列的后半部分是反转,因此您只能将第一个成员中具有最低成员的那些添加到您的集合中:
from itertools import permutations
iter_a = permutations([3, 4, 5, 2, 1, 6])
desired_set = set()
for it in iter_a:
if it[0] < it[-1]:
desired_set.add (it)