Rekursion Informatikklausur?

3 Antworten

Ja die lieben Rekursionen...

In Sachen Programmierung sollte man jedoch davon absehen , außer es ist unumgänglich. Rekursive Funktionen rufen sich selbst auf und legen Daten auf dem Stack ab. Bei heutigen Speichergrößen an sich kein Problem, wenn der Stack dynamisch verwaltet wird.

Dies können jedoch nicht alle Programmiersprachen. Einige haben ein Recursionslimit ,wie: (Python .. ein definierbares..), (JavaScript ..Browserabhängig zwischen 9000 und 32000 Recursionen), (Powershell ...100 ,Batch .. setlocal 32 level, purer call/Selbstaufruf ...abhängig von der Environmentgröße und Systemspeicher ... keine Auslagerung möglich... 100 bis 1000)

Eine "beliebte" und gefürchtete Variante ist die Forkbombe . Entfesselte Rekursion in Reinform und zum Selbstzweck.

Forkbomb.cmd

%0|%0

Auch unter Win 10 mit 16 GB Speicher? Diese vielleicht nicht, aber es geht aggressiver und exponentiell...

Ohne eindeutig erreichbare Abbruchkriterien sind Rekursionen immer kritisch .

Wenn nur irgendmöglich sollte man Iteration verwenden

http://www.phasinma.de/Java/page8/page8.html

https://www.inf-schule.de/algorithmen/algorithmen/rekursion/rekursioniteration/exkurs_rekursioniterativ

An sich alles, was mit Wiederholung einer Aufgabe / Iteration zutun hat.

Klassische Aufgaben, die mir gerade einfallen:

  • Wort rückwärts ausgeben
  • Traversion durch einen Baum (pre-/post-/in-order)
  • Berechnung von Zahlen in der Fibonacci-Folge
  • Berechnung von Zahlen im Pascal'schen Dreieck
  • Berechnung der Fakultät
  • Binäre Suche
  • Türme von Hanoi
  • Palindrom erkennen
  • Primzahl erkennen

Du kannst alles rekursiv umsetzen. Zumindest alles was überhaupt auch iterativ funktioniert.

Viel sinn ergibt die frage also nicht.