s n h m r u
i

Einordnung Recursion Tutor

Schauen wir uns jetzt die Funktion und das Diagramm von eben nochmal genauer an.

Das Diagramm hat sich mit den ersten Klicks jeweils vergrößert. Gleichzeitig hat sich das Argument im oberen Knoten verkleinert. Um genau zu sein, hat sich das Argument immer um genau eins verkleinert. Am Anfang sind die grauen Knoten auf die geklickt wurde gelb geworden und neue graue Knoten wurden sichtbar.

Irgendwann kamen wir bei der 1 als Argument an, der Mindestanzahl an Gästen auf unserer Party. An der Stelle hat sich das Diagramm auch nicht mehr vergrößert, sondern die Knoten haben ihre Farbe verändert und im unteren Knoten sind Ergebnisse erschienen, bis schließlich das Endergebnis der Funktion berechnet wurde. Die Elemente der Liste haben sich zu 6 aufsummiert, was die Anzahl der Begrüßungen bei 4 Gästen entspricht. Die anderen jeweils unteren Knoten haben Teilergebnisse enthalten, von den jeweiligen Funktionsaufrufen im oberen Knoten.

Das Diagramm visualisiert, dass die Funktion das Problem sozusagen nicht direkt löst, sondern stattdessen das Problem Schritt für Schritt verkleinert, bis es nicht mehr möglich war (wir also bei einem Gast angekommen sind). Dieses Prinzip, das Problem immer weiter zu verkleinern, ist die grundlegende Idee der Rekursion.

In der Informatik ist Rekursion eine Strategie, um komplizierte Probleme zu lösen, deren Lösung nicht auf dem direktesten Weg ersichtlich ist, indem wir sie auf kleinere Versionen des Problems zurückführen. Das machen wir so oft, bis die Lösung des Problems offensichtlich ist und bauen uns mit dieser offensichtlichen Lösung dann das Endergebnis schrittweise zusammen.

Das Tool visualisiert Schritt für Schritt, was passiert, wenn eine rekursive Funktion aufgerufen wird. Es zeigt dir:

  • Jeden einzelnen Funktionsaufruf als eigenen Knoten in einem Diagramm
  • Die Argumente, mit denen die Funktion jeweils aufgerufen wird
  • Wie die Funktion durch ihren Code "läuft" und so Schritt für Schritt das Ergebnis berechnet wird

Aufgabe 5

Entscheide für die folgenden Probleme, ob sie deiner Meinung nach intuitiv rekursiv gelöst werden können, oder nicht. Hinweis: Wenn ein Problem nicht inuitiv gelöst werden kann, heißt das nicht, dass es gar nicht rekursiv gelöst werden kann, sondern nur, dass eine andere, z.B. iterative, Methode intuitiver funktioniert.

Suche

v
100.142.1.1.2 Einordnung Recursion Tutor
Kopieren durch Anklicken

Rückmeldung geben