Rekursion (einfach erklärt)

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ก.ย. 2024

ความคิดเห็น • 36

  • @Yannick_1223
    @Yannick_1223 3 หลายเดือนก่อน +26

    Wenn du Rekursion verstehen willst, lese den Satz nochmal.

    • @Florian.Dalwigk
      @Florian.Dalwigk  3 หลายเดือนก่อน +22

      Definition Rekursion: Siehe Rekursion.

    • @LukasLindner
      @LukasLindner 3 หลายเดือนก่อน

      Ist es nicht eher:
      Definition Loop: siehe Loop.
      Definition Rekursion: Loop mit hoffentlich einem Ausgang.

    • @Florian.Dalwigk
      @Florian.Dalwigk  3 หลายเดือนก่อน +1

      Geht auch ;)

    • @mandelkuchen2288
      @mandelkuchen2288 2 หลายเดือนก่อน

      @@LukasLindner bei dir ist es in C++, bei Florian war es in Python.

  • @xAESEC
    @xAESEC 3 หลายเดือนก่อน +5

    Danke bester Vorbereitung :)

  • @X-razcal-X
    @X-razcal-X 3 หลายเดือนก่อน +2

    Wirklich gut erklärt. 💪🤓

  • @stl-xx5rq
    @stl-xx5rq 3 หลายเดือนก่อน +1

    Hyperoperationen sind ein anderes Beispiel für eine Rekursion:
    a[n]b =
    b+1, wenn n = 0
    a, wenn n = 1 und b = 0
    0, wenn n = 2 und b = 0
    1, wenn n >= 3 und b = 0
    ansonsten a[n-1](a[n](b-1))
    n bestimmt dabei den Operator. 0 für den Nachfolger von b, 1 für die Addition, 2 für die Multiplikation, 3 für das Potenzieren, 4 für die Tetration, 5 für die Pentation, 6 für die Hexation, 7 für die Heptation, ...

  • @robotermitzempf2999
    @robotermitzempf2999 3 หลายเดือนก่อน +1

    Hi Florian,
    was hältst du von Studiengängen, die speziell auf IT Security ausgelegt sind? Lohnt es sich aus deiner Sicht drei Jahre zu studieren oder würdest du einen anderen Weg gehen, um Wissen in dem Bereich aufzubauen?

    • @Florian.Dalwigk
      @Florian.Dalwigk  3 หลายเดือนก่อน +2

      Das kommt auf den konkreten Studiengang an. Den Master in IT Sicherheit an der Hochschule München kann ich bspw. absolut nicht empfehlen. Da ist jede IT Security Zertifizierung besser. Wenn es um einen Bachelor geht: Es kommt auf die konkreten Inhalte an. Wichtig ist in meinen Augen, dass Grundlagen wie Betriebssysteme, Rechnerarchitektur, Netzwerktechnik und Mathematik enthalten sind. Danach gerne Spezialisierungsmodule in z. B. Kryptographie, Datenschutz, Forensik etc.

  • @soufiane1337
    @soufiane1337 2 หลายเดือนก่อน

    Dein Beispiel mit den Funktionsaufrufen ist doch genau die selbe Herangehensweise wie solche Funktionen im Stack abgearbeitet werden oder ?

  • @JohnnyPC1
    @JohnnyPC1 3 หลายเดือนก่อน +2

    Ich habe mit Rekursion mit dem "Tower of Hanoi" selbst beigebracht

    • @Florian.Dalwigk
      @Florian.Dalwigk  3 หลายเดือนก่อน +1

      Das ist auch eine gute Möglichkeit.

  • @LukasLindner
    @LukasLindner 3 หลายเดือนก่อน

    Ich finds immer sehr einfach zu verstehen, wenn man bspw. rekursiv einen Ordner löschen möchte, man aber nur Dateien löschen kann und daher den Ordnerinhalt scannen und bei jeder Datei die Datei löschen muss aber bei jedem Unterordner die Funktion logischerweise erneut aufrufen muss.

    • @Florian.Dalwigk
      @Florian.Dalwigk  3 หลายเดือนก่อน +1

      Das ist auch ein gutes Beispiel

  • @arrowman141
    @arrowman141 3 หลายเดือนก่อน

    Wenn man deine rekursive Funktion mit fakultät(0) aufruft, landet man dann in einer Endlosschleife?

  • @simonliedtke7631
    @simonliedtke7631 3 หลายเดือนก่อน +1

    Für n nur Elemente aus den natürlichen Zahlen wählen, sonst...

    • @Florian.Dalwigk
      @Florian.Dalwigk  3 หลายเดือนก่อน +2

      ... wird's schwierig.

    • @c42xe
      @c42xe 3 หลายเดือนก่อน +1

      Tja, in den Mathebüchern hätten wir für die Reelen Zahlenn jetzt wahrscheinlich nen Integral von Euler da stehen.
      Btw. In dem Fall war Euler tatsächlich nicht der Erste der eine Funktion für die Fakultät in den Reelen Zahlen beschrieben hat. Es war ein Kolege von ihm mit dem Er im Wettschreit war. Dieser hatte Sie eine Woche früher Beschrieben. (Ohne Integral).
      Naja, zumindest wenn ich mich recht Errinner.

  • @Jons3000de
    @Jons3000de 3 หลายเดือนก่อน +1

    Das Prinzip hab ich verstanden. Aber mir fehlt es an der Vorstellungskraft, wofür man dies in der Programmierung benötigt. Hast du da vielleicht ein konkretes Beispiel?

    • @alimahir24
      @alimahir24 3 หลายเดือนก่อน +2

      Stell dir vor du hast eine Methode in der du ein Request abschicken kannst. Nun kannst du in dieser Methode eine IF Anweisung einbauen die im Fehlerfall die die aktuelle Methode erneut aufruft (Selbstaufruf) um den Request wieder zu versuchen.
      Das ist nur ein Beispiel wie man Rekursionen verwenden kann.

    • @paprika1716
      @paprika1716 3 หลายเดือนก่อน +2

      Ich hab das früher ganz gern genutzt, um Labyrinthe zu druchqueren, vor allem, wenn in einem Problem nur die nächste Umgebung zu sehen ist und nicht das ganze Feld auf ein mal.
      Rekursion funktioniert dann folgender maßen, gehe nach Norden und rufe die Funktion wieder auf, gehe danach zurück, also Süden. Das mache für alle Himmelsrichtungen. Der Basisfall ist dann das testen ob man am Ausgang steht. Durch die Rekursion wird jedes Feld mindestens einmal besucht, und das zurücklaufen nach dem rekursiven Aufruf der Funktion sorgt für ein Backtracking. Welche Informationen man dann noch speichert ist einem selbst überlassen. zB den schnellsten Weg, oder vielleicht doch ein vollständiger Abbruch, sobald der Ausgang erreicht ist? Wirklich effizient ist das ganze natürlich nicht, gerade wenn das gesamte Feld vorliegt, gibt es deutlich bessere Algorithmen, aber zur Anschauung von Rekursion fand ich das immer ein mittel komplexes Problem, was viele Möglichkeiten der Rekursion vereint.

    • @paprika1716
      @paprika1716 3 หลายเดือนก่อน +3

      Das einfache Problem, was man selber behandelt ist, besuche von deinem eigenen Feld alle angrenzenden Felder, nur nicht das, von dem du gerade gekommen bist. Nur mit diesem Satz wird rekursiv jedes mögliche Feld besucht in allen kombinatorischen Möglichkeiten. Das ist das schöne an der Rekursion, sehr komplexes Problem kann in 10 Zeilen Code zerlegt werden.

    • @viktor8316
      @viktor8316 3 หลายเดือนก่อน

      @@alimahir24 würde ich in diesem fall nicht tun. Das frisst mehr Leistung als eine Zeitabhängige Schleife

    • @Jons3000de
      @Jons3000de 3 หลายเดือนก่อน

      Danke!

  • @stl-xx5rq
    @stl-xx5rq 3 หลายเดือนก่อน

    Es gibt einige Spiele, die Rekursion benutzen. Da wäre zum einen Patrick's Parabox, zum anderen Recursed.

  • @viktor8316
    @viktor8316 3 หลายเดือนก่อน +1

    Rekursion war im Studium ein interessantes Theme, doch in der Praxis vermeide ich es. Rekursion ist meist schnell geschrieben aber dafür ineffizient wenn es um Prozessorzeit geht.

    • @Florian.Dalwigk
      @Florian.Dalwigk  2 หลายเดือนก่อน

      Zudem ist der Code für viele schwierig zu lesen