i

Rekursive Funktion

Eine Funktionsdefinition entwickeln

Wir gehen von den Reduktionsschritten aus, die im letzten Abschnitt entwickelt wurden.

Rekursionsanfang bzw. Rückführungsanfang:

Falls k == 0:
anzahlWege n k -> 1
Falls k == n:
anzahlWege n k -> 1

Rekursionsschritt bzw. Rückführungsschritt:

Falls k > 0 und k < n:
anzahlWege n k -> (anzahlwege (n-1) (k-1)) + (anzahlWege (n-1) k)

Wir nutzen diese Reduktionen zur Implementierung der Funktion anzahlWege.

anzahlWege: Int -> Int -> Int
anzahlWege n k =
    if (k == 0) || (k == n) then 
        1 
    else 
        (anzahlWege (n-1) (k-1)) + (anzahlWege (n-1) k)
> anzahlWege 5 2
...

Aufgabe 1

(a) Erläutere wie man von den Reduktionen zur rekursiven Funktionsdefinition gelangt.

(b) Teste die Funktionsdefinition in der REPL.

Aufgabe 2

Löse mit Hilfe der Funktion anzahlWege das Ausgangsproblem: Wie viele Wege gibt es vom Startpunkt (0,0) zum Zielpunkt (9,4)?

Suche

v
100.110.2.7.2.1.3
inf-schule.de/entwuerfe/fp_elm_alteversion/elm_programme/rekursion/galton/lernstrecke/funktion
inf-schule.de/100.110.2.7.2.1.3
inf-schule.de/@/page/COlQllfxjCq8zBSG

Rückmeldung geben