0
我想用回溯来解决问题。正如...我给出了一个数字列表,我想使用回溯来找到尊重给定条件的所有可能的排列组合。条件下的Python置换(回溯)
我有用于生成排列列表的代码,但它没有帮助,因为我无法在将每个排列添加到列表之前单独检查每个排列,因此它不是回溯,它只是递归。 我也明白回溯作品的方式:从0到x,但不是一个列表排列...
这是我的置换列表生成
def permutare(self, lista):
if len(lista) == 1:
return [lista]
res = []
for permutation in self.permutare(lista[1:]):
for i in range(len(lista)):
res.append(permutation[:i] + lista[0:1] + permutation[i:])
return res
作品而不是我的帮助。我尝试在那里插入验证,但无处可用..我尝试了所有我能找到的排列算法。我需要一个回溯
任何想法/算法/伪代码的条件回溯排列?
好,但哪里验证去了?我的意思是一个名为valid()的函数,用于检查最终置换实际上是否遵守某些规则 – Mocktheduck
已更新,以添加有效函数。我认为这应该做你想做的。 –