i

Einordnung Rekursion

Schauen wir uns jetzt die Funktionen von eben nochmal genauer an. Was haben die beiden Funktionen gemeinsam?

In beiden Fällen können wir das eigentliche Problem nicht direkt lösen. Wenn die Liste beispielswiese nur aus einem Element besteht, ist es trivial, die Summe aller Elemente der Liste zu bestimmen. Genauso ist es bei der Quersumme einer einstelligen Zahl. Zugegebenermaßen kann es auch noch relativ leicht sein, ein paar wenige Zahlen im Kopf zu addieren. Allerdings wird das auf Anhieb schon schwieriger, wenn die Listen bzw. Zahlen plötzlich deutlich größer sind.

Wenn wir uns sum_list nochmal genauer anschauen:

  • Anstatt direkt alle Elemente der Liste auf einmal aufzusummieren, summieren wir einen Teil der Listenelemente und addieren dann ein weiteres Element drauf
  • Das ist also, als würden wir das Problem in Teilprobleme aufteilen. Zum Beispiel ist die Summe aller Elemente der Liste [4,7,1,1] die selbe wie die der Liste [7,1,1] plus die der Liste [4].
  • Dieses Aufteilen können wir jetzt noch öfter machen, bis wir vier Listen mit nur je einem Element haben, die wir alle trivial aufsummieren können: sum_list([4]) + sum_list([7]) + sum_list([1]) + sum_list([1]) = 4 + 7 + 1 + 1 = 13

Analoge Überlegungen können wir auch für die Quersumme eine Zahl machen. Bei beiden Funktionen lösen wir sozusagen das Problem nicht direkt, sondern wir verkleinern das Problem Schritt für Schritt, bis es nicht mehr möglich ist bzw. das Problem dann einfach zu lösen ist. Das 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.

Aufgabe 3

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.141.1.1.2 Einordnung Rekursion
Kopieren durch Anklicken

Rückmeldung geben