Fibonacci Zahlenberechnung

Status
Nicht offen für weitere Antworten.

wolfheart

Mitglied
Hallo,

ich habe folgenden Code:

Java:
public class FibonacciA2 {


	  public static void main(String[] args){
			 
		 	print("Geben Sie eine zahl ein: ");
		
		int a = 1, b = 1;
		int n = readInt();
		
		println("fib("+n+") = " + fib(n-1, b, a+b));
		
}
		private static int fib(int n, int a, int b) {
		
		if(n==0)
		return a;
		
		else
		return fib(n-1, b, a+b);
		}
}


Allerdings weiß ich nicht wie der Code z.B. für fib(6) funktioniert. Der Code geht zwar aber ich habe Probleme zu verstehen was der eigentlich macht. Kann mir jemand helfen?

mfg
 

Sempah

Bekanntes Mitglied
Dein Stichwort heisst: Rekursion.
Solange n != 0, ruft sich die Methode fib(...) immer wieder selber auf.
 

wolfheart

Mitglied
das habe ich schon soweit vertanden mit der Methode, es geht mir um den Inhalt (n-1, b, a+b) der Methode.

wenn ich nun fib(6) berechnen will heißt das dann (5, 1, 2)? und wie wird damit weiter gerechnet?
 

Schumi

Bekanntes Mitglied
6 wird runtergezählt, ansonsten hast Du noch 2 Variablen (zu Beginn 1 und 1). Da wird die Summe als 3. Argument weitergegeben und die 2. Zahl als 2. Argument weitergegeben:

6 1 1
5 1 2
4 2 3
3 3 5
usw.

Du kannst testweise einfach mal printstatements in die Methode schreiben, die Dir die Variablen ausgeben.

Edit: sorry, war verkehrtherum. Ich glaube für heute lasse ich es mit antworten.
 

ARadauer

Top Contributor
so gehts kürzer und einfacher...

Java:
    public static int fibu(int f){
      return (f<2)? f: fibu(f-1)+fibu(f-2);
   }

bzw..

Java:
   public static int fibu(int f){
      if(f<2)
         return f;      
      return fibu(f-1)+fibu(f-2);
   }
a, b, n? was? müll!
die Fibunaccci Folge: ist eine Folge bei denen eine Zahl immer die Summe seiner beiden vorherigen Zahlen ist...
Fibunnaci Zahl 0 =0 und 1 = 1..


also
Fibu(f) = Fibu(f-1)+Fibu(f-2)


easy cheasy .. eventuell wikipedia fragen... ein standard Beispiel welches ca schon 1,5 Mrd Sudenten gelöst haben...
 

wolfheart

Mitglied
geht die folge dann so weiter für fib(6):

6,1,1
5,1,2
4,2,3
3,3,5
2,5,8
1,8,13?


und 13 ist ja dann das ergebnis für fib(6) oder?
 

Schumi

Bekanntes Mitglied
Nein, es käme noch der Aufruf mit den Werten:
0 13 21 da hier n = 0 ist, folgt der Abbruch und 13 wird als Ergebnis ausgegeben.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
so schaut es aus,

edit @Schumi: wenn man den Code ausführt kommt 13 raus, weil erst bei n == 0 abgebrochen wird,
ob das korrekt ist will ich mal nicht nachschlagen
 

Schumi

Bekanntes Mitglied
so gehts kürzer und einfacher...

Java:
    public static int fibu(int f){
      return (f<2)? f: fibu(f-1)+fibu(f-2);
   }

bzw..

Java:
   public static int fibu(int f){
      if(f<2)
         return f;      
      return fibu(f-1)+fibu(f-2);
   }
a, b, n? was? müll!
die Fibunaccci Folge: ist eine Folge bei denen eine Zahl immer die Summe seiner beiden vorherigen Zahlen ist...
Fibunnaci Zahl 0 =0 und 1 = 1..


also
Fibu(f) = Fibu(f-1)+Fibu(f-2)


easy cheasy .. eventuell wikipedia fragen... ein standard Beispiel welches ca schon 1,5 Mrd Sudenten gelöst haben...

Die vom TE geschriebene Methode hat den Vorteil, dass es immer nur einen Recursiven Aufruf gibt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Abwandlung der Fibonacci Folge Java Basics - Anfänger-Themen 3
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
123456789sssssaaaa Which is the best way to Print Fibonacci Series in Java? Java Basics - Anfänger-Themen 3
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
J Fibonacci-Reihe Java Basics - Anfänger-Themen 12
G Fibonacci Zahlenreihe Fehler Java Basics - Anfänger-Themen 4
D Fibonacci overflow integer Java Basics - Anfänger-Themen 8
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
V Fibonacci Folge Java Basics - Anfänger-Themen 4
S Fibonacci Zahlen rekursiv Java Basics - Anfänger-Themen 1
A Fibonacci Zahlen Java Basics - Anfänger-Themen 1
M Methoden Fibonacci-Folge Java Basics - Anfänger-Themen 6
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
P Fibonacci -Verallgemeintert Java Basics - Anfänger-Themen 2
K Methoden Fibonacci in Array mit rekursiver Methoden Java Basics - Anfänger-Themen 19
M Fibonacci rekursiv mittels Cache Java Basics - Anfänger-Themen 17
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
K Fibonacci Zahlen Java Basics - Anfänger-Themen 3
B Fibonacci Zahlen rekursiv Array Java Basics - Anfänger-Themen 12
M Fibonacci-Folge mit while-Schleife Java Basics - Anfänger-Themen 4
P fibonacci - do while Statement Logik Fehler Java Basics - Anfänger-Themen 5
A Fibonacci-numbers Java Basics - Anfänger-Themen 9
K Rekursion Fibonacci Java Basics - Anfänger-Themen 3
J Fibonacci Zahlen berechnen Java Basics - Anfänger-Themen 3
Z Fibonacci rekursiv meine Erklärung stimmt so? Java Basics - Anfänger-Themen 2
Z Fibonacci Array Erklärung Java Basics - Anfänger-Themen 5
A Gerade Terme der Fibonacci-Folge aufsummieren Java Basics - Anfänger-Themen 12
M Fibonacci, Fakultaet, GGT Java Basics - Anfänger-Themen 9
C Fibonacci Zahlen Java Basics - Anfänger-Themen 7
J Ausgabe der fibonacci Zahlen Java Basics - Anfänger-Themen 4
S Fibonacci Folge Java Basics - Anfänger-Themen 34
D Fibonacci Java Basics - Anfänger-Themen 11
M Fibonacci-Linear und Rekursiv Java Basics - Anfänger-Themen 14
X Fibonacci mit durchschnittlicher Zeit Java Basics - Anfänger-Themen 5
I Fibonacci-Folge , direkter Weg. Java Basics - Anfänger-Themen 5
G Fibonacci Algorithmus Java Basics - Anfänger-Themen 22
0 Fibonacci Zahlen seeeehr schnell berechnen Java Basics - Anfänger-Themen 9
S Fibonacci Rückrechnung! Java Basics - Anfänger-Themen 5
K Fibonacci Zahlen Java Basics - Anfänger-Themen 2
K Programmieren von den ersten 70 Fibonacci-Zahlen Java Basics - Anfänger-Themen 2
G fibonacci was stimmt an meinem code nicht? Java Basics - Anfänger-Themen 2
S Fibonacci Zahlenvergeich Java Basics - Anfänger-Themen 6
G Iterativer Algorithmus zur Berechnung der Fibonacci Zahlen Java Basics - Anfänger-Themen 1
P Fibonacci-Zahlen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben