Rekursion, Fibonacci, fakultät? Wie Funktioniert das ganze in Informatik?

...komplette Frage anzeigen Erstens - (Schule, Informatik, Rekursion) Zweitens - (Schule, Informatik, Rekursion)

3 Antworten

Okey,

Eine rekursive definierte Folge benötigt jeweils vorherig berechnete Elemente um neue zu errechnen.

Fibonacci ist ja a_n = a_n-1+a_n-2 (1,1,2,3,5,8...)
Fakultät wäre a_n ! = n* a_n-1!

Das ganze würde man beim Programmieren meist in For-Schleifen machen.

Fibonacci zB:

int[] fib = new int[X]

for(int i = 2; i < X;i++){
 fib[i] = fib[i-1]+fib[i-2];
}

Wenn du die Werte speichern musst, verwende am besten Felder.

Das ist jetzt zwar in c# sollte in java aber sehr ähnlich sein.

Jetzt alles klar?

youngbb 21.02.2017, 19:17

ja, viel besser nur ist meine frage wie soll ich das im Zusammenhang zu den aufgaben machen 

0
luchspeter 21.02.2017, 19:18
@youngbb

Ich habe mein Kommentar etwas besser formuliert. Weisst du jetzt was du zu machen hast?

1
youngbb 21.02.2017, 19:21
@youngbb

und woran erkennt man, dass man Fib oder Fak nutzen soll?

0
luchspeter 21.02.2017, 19:29
@youngbb

Naja entweder in der Aufgabenstellung steht du solltest die Fibonacci Folge berechnen oder die Fakultät...

1

Rekursion bedeutet, dass eine Funktion sich selbst aufruft.

Dazu ist es absolut unumgänglich, eine Abbruchbedingung zu definieren, sonst läuft die Funktion unendlich lang und damit das Programm an die Wand.

SummeBis(5) wäre ein Beispiel. Du willst alle nat. Zahlen bis n addieren.

In der Funktion SummeBis wird die Summe von n und der SummeBis(n-1) zurückgegeben.

Außer n ist 1. Dann wird einfach nur die 1 zurückgegeben.

Rekursionen sind schnell und elegant formuliert, aber kein Allheilmittel. Iteration geht schneller und spart jede Menge Stack.

Was möchtest Du wissen?