import copy
def combine(l, n):
answers = []
one = [0] * n
def next_c(li = 0, ni = 0):
if ni == n:
answers.append(copy.copy(one))
return
for k in range(li, len(l)):
one[ni] = l[k]
next_c(k+1, ni+1)
next_c()
return answers
print(combine([1,2,3,4],2))
Kürzlich fand ich diesen Code im Internet. Es funktioniert sehr gut. Ich weiß jedoch nicht, wie das funktioniert, also kann mir jemand sagen, wie es funktioniert? Und wie kann man einen rekursiven Code schnell verstehen? Vielen DankEine Kombination Algorithmus in Python
SO ist keine Nachhilfe Bedienung. Auch Sie sagen nicht einmal, was der Code tun soll. – Julien
Es gibt eine Standardimplementierung für 'Kombinationen' im' itertools' Modul. Der eine, den Sie gefunden haben, verwendet eine innere rekursive Funktion, um die Kombinationen zu erstellen. Versuchen Sie, die Zwischenergebnisse auszudrucken, um zu sehen, was passiert. – AChampion
Dies ist nicht wirklich rekursiv, es ist iterativ. –