Zum Inhalt springen

  • Beiträge
    13
  • Kommentare
    109
  • Aufrufe
    2.204

Rekursive Funktionen? Wie krank ist das denn???


Webby

340 Aufrufe

Also ich bin es ja durchaus gewohnt in der Welt der Programmierung mit allerlei Verschachtelungen zu arbeiten, aber etwas derart krankes wie die Vorstellung dass eine Funktion sich selbst aufruft - und dadurch sich je nach Fall wieder ausruft um sich aufzurufen - hab ich noch NIE erlebt!!! :mad:

Hier stoße ich einfach an die Grenzen der menschlichen Vorstellungskraft!!!

Ich habe schon ellenlange Programme in PHP und diversen Scriptsprachen geschrieben und sowas noch nie gebraucht oder gesehen.

Das Problem ist, ich kann sowas einfach nicht selbst konstruiieren.

Wenn ich die Lösung zu einer Aufgabe in der sowas verlangt wird sehe, kann ich das Ergebnis schon nachvollziehen, aber da würde ich in hundert Jahren nicht selbst drauf kommen. Und da jede Aufgabe etwas anderes verlangt, ist der Lerneffekt = 0.

Von allen Facetten des Software Engineerings, ist dies das erste Ding, wo ich glaube ich niemals verstehen werde. :(

11 Kommentare


Empfohlene Kommentare

Rekursion wirst du in der Praxis auch relativ selten finden, da es meistens für die gleiche Funktion auch eine iterative Lösung gibt. Aber ich habe schon Fälle der Rekursion gesehen, ja sogar selbst programmiert.

Link zu diesem Kommentar

danke @ Ch4otin87, das wird sich dann bei der B-Aufgabe und der Klausur im April/Juni zeigen ob ich dieser Disziplin gewachsen bin ;)

@ Steffen, wie bereits gesagt, ich kann so ne rekursive Lösung einfach nicht selbst entwickeln. Solange ich es nicht muss und etwas iterativ lösen darf, würde ich es auch damit versuchen, wird aber eine rekursive Lösung verlangt, stehe ich ganz schön blöd da :(

Link zu diesem Kommentar

Schöne Erklärungen und Beispiele zu dem Thema gibt's hier:

http://openbook.galileocomputing.de/javainsel8/javainsel_02_008.htm#mjb1a7e84ddd444ae4e9860f0874d5ad35

Vor allem die Ackermann-Funktion und die Türme von Hanoi sind interessante Anwendungen.

Mir liegt der Entwurf solcher Methoden auch nicht besonders. Aber bei Kollegen habe ich da schon sehr trickreiche Ideen gesehen. Das ist keinesfalls ein Mittel um Studenten zu quälen.

Link zu diesem Kommentar

Rekursionen haben mich immer aufgrund ihrer simplen Idee dahinter (die Logik) interessiert.

Aber da ich nicht über das spielerische Programmieren hinauskam, habe ich Rekursionen bisher nie gebraucht.

Link zu diesem Kommentar

Schau dir mal einführende Bücher zu deklarativen Programmiersprachen wie Prolog, ML, Lisp usw. an. In den Sprachen ist Rekursion ein absolut bestimmendes Thema und daher auch meist gut erklärt.

Günstiger Nebeneffekt ist, dass du neben der imperativen Sichtweise der Programmierung auch mal was anderes kennenlernst.

Link zu diesem Kommentar
danke @ Ch4otin87, das wird sich dann bei der B-Aufgabe und der Klausur im April/Juni zeigen ob ich dieser Disziplin gewachsen bin ;)

@ Steffen, wie bereits gesagt, ich kann so ne rekursive Lösung einfach nicht selbst entwickeln. Solange ich es nicht muss und etwas iterativ lösen darf, würde ich es auch damit versuchen, wird aber eine rekursive Lösung verlangt, stehe ich ganz schön blöd da :(

So 100% hatte ich es auch nicht verstanden hat aber trotzdem für gute Note gereicht ;)

Link zu diesem Kommentar

Oh ja, das hatte ich auch mal in der Schule. Ich hab mir damals allerdings noch nicht mal besondere Mühe gegeben, das zu verstehen, obwohl ich den Gedanken schon irgendwie interessant fand. Es ist dann irgendwann einfach vorbeigegangen und gut. Die Klausur hab ich überlebt und auch deine wirst du sicher irgendwie hinkriegen. Viele Dinge schauen auf den ersten Blick und ohne Übung völlig unmöglich aus, sind aber schaffbar.

Link zu diesem Kommentar

Ihr habt vermutlich recht, das wird ja nicht das einzige Thema einer Klausur oder B-Aufgabe sein. Wenn ich den Rest so halbwegs verstanden hab, sollte es wegen diesem Themengebiet eigentlich nicht scheitern

Link zu diesem Kommentar

Eigentlich sind rekursive Funktionen eine grundlegende Technik, die jeder ausgebildete Programmierer beherrscht. Ohne jetzt allzu böse sein zu wollen: Wenn Dir das noch NIE begegnet ist, dann hast Du bisher noch NIE von der Pike auf programmiert. Aber dafür machst Du doch auch das Studium, oder willst Du nur lernen, was Du schon kannst?

Es gibt übrigens IMMER für jede rekursive Lösung eine iterative und vice versa, aber insb. für ein optimiertes Laufzeitverhalten und schlanken Text sind rekursive Techniken unverzichtbar.

Rekursion ist manchmal einfach die naheliegende Lösung für an sich komplexe Probleme, die man mir Rechenkraft erschlägt. Hier zeigt sich halt, ob man versteht, was man tut oder nur so lange am Quelltext schraubt, bis das gewünschte unten rausfällt.

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


×
  • Neu erstellen...