Ich muss eine Funktion schreiben, die die Anzahl der Möglichkeiten zum Erreichen einer bestimmten Anzahl durch Hinzufügen von Nummern einer Liste zurückgibt. Zum Beispiel:eine Funktion, die Anzahl der Summen einer bestimmten Zahl zurückgibt.py
print(p([3,5,8,9,11,12,20], 20))
should return:5
Der Code, den ich geschrieben habe, ist:
def pow(lis):
power = [[]]
for lst in lis:
for po in power:
power = power + [list(po)+[lst]]
return power
def p(lst, n):
counter1 = 0
counter2 = 0
power_list = pow(lst)
print(power_list)
for p in power_list:
for j in p:
counter1 += j
if counter1 == n:
counter2 += 1
counter1 == 0
else:
counter1 == 0
return counter2
pow()
ist eine Funktion, die alle von den Untergruppen der Liste und p
gibt sollte die Anzahl der Möglichkeiten gibt die Anzahl n zu erreichen. Ich bekomme immer eine Ausgabe von Null und ich verstehe nicht warum. Ich würde gerne Ihre Eingabe dafür hören. Vielen Dank im Voraus.
Da "pow" eine integrierte Funktion ist, möchten Sie vielleicht einen anderen Namen wählen. In jedem Fall, wenn alle Zahlen als positiv bekannt sind, ist das Überfahren aller Teilmengen übertrieben. –
Auch - wenn dies keine Hausaufgaben sind und von Ihnen erwartet wird, alles von Grund auf neu zu machen, ist die Verwendung des 'itertools'-Moduls der einfachste Weg, Teilmengen zu zählen. –
'counter1 == 0' sollte' counter1 = 0' sein (zweimal). Schließen für Tippfehler. Kann auch vereinfacht werden zu 'counter2 = sum (sum (p) == n für p in power_list)' –