Seite 1 von 1

Über Rekursiv Funktion in Python

Verfasst: Sonntag 18. Mai 2014, 15:37
von erdisayar
Hallo Freunden / Freundinen

Ich entschuldiege im voraus.weil mein deutsch schlecht ist. Aber ich versuche etwas über mein Problem zu erklären.

Die Frage ist

In England benutzt man als Währung pound [£] und pence . Wir haben 8 Münzen für diese Frage. Also

1p 2p 5p 10p 20p 50p 100p [1£] 200p [2£]

Es ist möglich 2 pound in folgender Weise zu machen.

1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p

Wie viele möglichkeit gibt es um 2£ zu bekommen ?

Die Lösung

Code: Alles auswählen



def coin_sums(amount, coins):
    if amount==0:
        return 1
    elif len(coins)==0:
        return 0
    counts=[0]*len(coins)
    s=0
    while coins[0]*counts[0]<=amount:
        s+=coin_sums(amount-coins[0]*counts[0], coins[1:])
        counts[0]+=1
    return s

print("%d" % (coin_sums(200, [200,100,50,20,10,5,2,1])))



in diesem Befehl wurde Rekursiv Funktion verwendet . Aber ich konnte nicht verstehen , Wie Funktioniert diese Befehl ,

Wie kann ich selbst mit der Rekursiv Funktion programiieren .


Danke Schön

Re: Über Rekursiv Funktion in Python

Verfasst: Sonntag 18. Mai 2014, 19:41
von /me
erdisayar hat geschrieben:in diesem Befehl wurde Rekursiv Funktion verwendet . Aber ich konnte nicht verstehen , Wie Funktioniert diese Befehl
Bei Rekursion ruft sich die Funktion (typischerweise mit anderen Parametern) noch einmal selbst auf.

Re: Über Rekursiv Funktion in Python

Verfasst: Dienstag 20. Mai 2014, 00:52
von noisefloor
Hallo,

noch eine kleine Anmerkung: Rekursion wird in Python eher selten eingesetzt, da es nicht zu den "bevorzugten" Techniken gehört. Zumal die Rekursionstiefe per default auf 1000 eingeschränkt ist (was aber änderbar wäre).

Gruß, noisefloor