ich probier schon ewig rum - wäre Wahnsinn, wenn jemand was dazu sagen könnte!!
ich habe eine funktion programmiert, die mir bei eingabe einer liste deren potenzmenge ausgibt. folgender code macht was er soll:
Code: Alles auswählen
def getAllSubsets(lst):
if not lst:
return [[]]
Rec = getAllSubsets(lst[1:])
withFirst = [[lst[0]] + rest for rest in Rec]
withoutFirst = Rec
return withFirst + withoutFirst
print(getAllSubsets([1, 2, 3]))
die für die obere grenze der zahlenfolge aller natürlicher zahlen <= n steht. also eingabe n=3 soll für die liste [1,2,3] stehen, etc.
ich sehe einfach den fehler in folgendem code nicht!!??
Code: Alles auswählen
def potenzmenge(n):
if n == 0:
return [[]]
second = [[]]
for i in range(0, len(potenzmenge(n - 1))):
second[I].append(potenzmenge(n - 1)[i] + [n])
return potenzmenge(n - 1) + second
print(potenzmenge(3))
(unabhängig davon, dass der dreimalige rekursive aufruf noch durch eine variable ersetzt werden sollte...)