Hey, also mir wird nicht wirklich klar woran ich erkenne, dass eine linear rekursive Funktion endrekursiv ost oder nicht.
Der formale Satz finde ich überall, aber nicht so wirklich woran ich es genau sehe an dieser Funktion:
Diese ist endrekursiv, aber warum?
Zum Vergleich: Diese ist nicht endrekursiv: Aber warum?
Der formale Satz lautet:
Eine funktion f heißt endrekursiv, wenn der rekursive Funktionsaufruf stets die letzte Aktion des Zweigs zur Berechnung von f ist.
Was der rekursive Funktionsaufruf ist, ist mir klar. Allerdings ist mir nicht klar was mit "Zweig" gemeint ist..
Ich blick da nicht so durch.
Würd mich über ne Erklärung sehr freuen
Danke schonmaL!
Der formale Satz finde ich überall, aber nicht so wirklich woran ich es genau sehe an dieser Funktion:
Java:
public class ggTklassisch {
public static void main(String[] args){
int a=Integer.parseInt(args[0]);
int b=Integer.parseInt(args[1]);
System.out.println(ggT(a, b));
}
static long ggT(int a , int b){
if(a>b){
return ggT(a-b,b);
}
else if (a<b){
return ggT(a, b-a);
}
else {
return a;
}
}
}
Diese ist endrekursiv, aber warum?
Zum Vergleich: Diese ist nicht endrekursiv: Aber warum?
Java:
public class FakultaetRekursiv {
public static void main(String[] args){
int n=Integer.parseInt(args[0]);
System.out.println(FunktionRekursiv(n));
}
static long FunktionRekursiv (int n) {
if (n==1){
return 1;
}
else {
return n*FunktionRekursiv(n-1);
}
}
}
Der formale Satz lautet:
Eine funktion f heißt endrekursiv, wenn der rekursive Funktionsaufruf stets die letzte Aktion des Zweigs zur Berechnung von f ist.
Was der rekursive Funktionsaufruf ist, ist mir klar. Allerdings ist mir nicht klar was mit "Zweig" gemeint ist..
Ich blick da nicht so durch.
Würd mich über ne Erklärung sehr freuen
Danke schonmaL!