【发布时间】:2020-07-17 09:58:02
【问题描述】:
我有这些圈子:
我想获取最大不相交圆的所有可能解的列表。这是我想要从节点 A 获得的解决方案的插图。
因此来自节点 A 的可能解决方案: 1 = [A,B,C], 2 = [A,B,E], 3 = [A,C,B], 4 = [A,E,B] ..等等
我想将所有可能性存储到一个列表中,该列表将用于加权和选择最佳结果。但是,我仍在尝试创建所有可能性的列表。
我尝试在这里编写结构代码,但我仍然对回溯和递归感到困惑。有人可以帮忙吗?
# List of circle
# List of circle
list_of_circle = ['A','B','C','D','E']
# List of all possible solutions
result = []
# List of possible nodes
ways = []
for k in list_of_circle:
if len(list_of_circle)==0:
result.append(ways)
else:
ways.append[k]
list_of_circle.remove(k)
for j in list_of_circle:
if k.intersects(j):
list_of_circle.remove(j)
return result
【问题讨论】:
-
[A, B, E],[A, E, B]?它应该重复一个结果吗? -
是的,最后我不想要任何重复的结果。但是我认为排除重复的结果会变得更加复杂。因此,我将在存储在列表中后删除重复的。还是可以同时进行?