Rekursiver Algorithmus für Fakultät - mathematisch?
Hallo,
ich habe ein Problem mit einer bestimmten Informatik Aufgabe und finde dazu ebenfalls keine (verständliche) Hilfe im Internet.
Wir haben das Thema Rekursion bzw. die Mathematische Definition dieser und ich steig da nicht wirklich durch...
Würde mich über eine Erklärung oder eine Weiterleitung z.B. zu einem hilfreichem Video freuen.
Danke im voraus
Lg
PS: Im Anhang habe ich die Aufgabe, welche ich nicht verstehe.
4 Antworten
Was genau verstehst du daran nicht? Wie man einen Funktionswert nach einer solchen Vorschrift berechnet?
Beispiel g(3,3):
g(3,3) = 3 + g(3,2) // g(3,2) weiß ich noch nicht
g(3,2) = 3 + g(3,1) // g(3,1) weiß ich noch nicht
g(3,1) = 3 + g(3,0) // g(3,0) = 0 denn y ist 0 !
also ist
g(3,1) = 3 // g(3,0) eingesetzt
g(3,2) = 3 + g(3,1) = 6
g(3,3) = 3 + g(3,2) = 9
Okay, machen wir eien Starthilfe, 1. (a) für f(5):
f(5)=5+f(4)=5+4+f(3)=5+4+3+f(2)=5+4+3+2+f(1)=5+4+3+2+1
Für b und c machst Du das entsprechend analog und überlegst Dir dann, was sich jeweils dahinter versteckt.
Die (1) verlangt ja erstmal nur, dass du dir beispielhaft Zahlenpaare (natürliche Zahlen <=10) anschaust. Also wählt man z.B. x=4 und y=6
(1) Da x=4>=2 trifft die erste Definition zu: f(x)=x+f(x-1)
x-1=3>=2 also trifft wieder die erste Definition zu: f(x)=x+(x-1)+f(x-2)
x-2>=2 also trifft....zu: f(x)=x+(x-1)+(x-2)+f(x-3)
x-3=1 also ist f(x-3)=1 nach Def.
Schlussendlich hast du also f(x)=x+(x-1)+(x-2)+1=4+3+2+1=10
Was du also rekursiv machst, ist alle natürlichen Zahlen von x an absteigend aufzuaddieren bis du bei der 0 bist.
So etwas rekursives kannst du (meist/immer ?) auch umformen, ohne Rekursion; hier wäre es die Gaußsche Summenformel.
Analog bei (2) und (3) nur dass hier das y auch ne Rolle spielt.
Hoffe das hilft, Grüße
Ich versteh deine Fragen leider nicht ganz.
Die 3 Rekursionen sind gegeben und die Aufgabe ist auch eindeutig gestellt.
Bei 1. handelt es sich meiner Meinung nach um die Summe aller Zahlen von 1-n und bei 3. um die Potenz.
Edit: Zur Erklärung:
Rekursion bedeutet nix anderes, wie „sich selber aufrufend“.
Wenn du zB. in C eine Funktion zur Errechnung der Summe aller Zahlen von 1-n hast, dann kann sie sich selber aufrufen.
int sum(int n) {
if (n == 1) {
return 1;
}
return n + sum(n-1);
}