Rekursion und Fakultät

  • Themenstarter Themenstarter VBFREAK
  • Beginndatum Beginndatum
V

VBFREAK

Gast
Hallo,

Da ich mathematisches nicht besonders begabt bin, brauche ich Eure Hilfe!

1. Was genau ist der Unterschied zwischen Rekursion und Fakultät?

2. Ich habe hier einen Code mit welchem sich die Rekursion oder Fakultät berechnen lässt:

Java:
public class Rek1
{
     
    private long Fakultät(long n)
        {
            if (n==1) return 1;
            return Fakultät(n-1)*n;
        }

    public void fuehreAus(long n) 
    {
       System.out.println(Fakultät(n));
        
    }
}

Leider verstehe ich nicht ganz was genau in den einzelnen Zeilen passiert. Ich wäre sehr sehr dankbar wenn mir jemand die einzelnen Zeilen im Code erklären könnte.

Vielen Dank!
 
Java:
public class Rek1 //Klassendefinition er Klasse Rek1
{
     
    private long Fakultät(long n) //Methode mit einem long als parameter die einen long ausgibt
        {
            if (n==1) return 1; //wenn er eingabewert 1 war wird 1 zurückgegeben
            return Fakultät(n-1)*n; //ansonsten wird die Funktion mit n-1 aufgerufen, das ergebnis davon mit n multipliziert und das ganze dann zurückgegeben
        }
 
    public void fuehreAus(long n) //methode one rückgabewert mit einem long-parameter
    {
       System.out.println(Fakultät(n)); //ruft die obige funktion mit dem Parameter n auf und gibt das Ergebnis auf der Konsole aus
        
    }
}

Java:
der Aufruf

Rek1 rek = new Rek1();
rek.fuehreAus(3);
sollte dir also hoffentlich 6 auf der Konsole ausgeben.
 
Wenn du z.B. [c]Fakultät(3)[/c] aufrufst, ist n = 3, also wird "innen" [c]Fakultät(3-1)*3[/c], zusammengefasst [c]Fakultät(2)*3[/c]aufgerufen. Ersetzt man wiederum dieses Aufruf, erhält man [c](Fakultät(2-1)*2)*3[/c], zusammengefasst [c](Fakultät(1)*2)*3[/c]. In diesem Fall ist die Bedingung n == 1 wahr, es wird also einfach 1 zurückgeliefert, also [c]1*2*3[/c] oder [c]6[/c].
 
Rekursion bedeutet in der Programmierung einfach nur eine sich selbst aufrufende Methode oder Funktion.

Wie ARadauer bereits schrieb, viele Funktionen bzw. Zahlenreihen können durch rekursive Methoden implementiert werden.

Rekursion besteht immer aus einem rekursiven Selbstaufruf, Parameter- bzw. Variablen-Veränderung und einer Abbruchbedingung (üblicherweise in genau umgekehrter Reihenfolge).
 

Zurück
Oben