Fibonacci

D

deroldendorfer

Gast
Ich möchte ein Programm für die Fibonacci-Zahlen folge schreiben, komme aber leider nicht weiter. Kann mir vllt. jemand helfen ?

Java:
import java.awt.*;
import javax.swing.*;
import java.awt.Button;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * Tragen Sie hier eine Beschreibung der Applet-Klasse Potenz ein.
 *
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Fib extends Quersumme
{
    
    public void init()
    
    {
        super.init();
    }
    
    
    public void rechne ()
    
    {
        int x, z; 
        x = Integer.parseInt (textFeld1.getText());
        z = fibu (x);
        textFeld3.setText (Integer.toString(z));
    
    }
    
    
    
    public int fibu ( int x)
    
    {
        if(x <= 2)  
		{return 1;}
		
		else
		
	{
	   
	   else return fib(a-1)+fib(a-2);

	   }	
		
        
    }
    
    
    }
 
D

deroldendorfer

Gast
ist geändert funkt aber trotzdem nicht !


[Java]

import java.awt.*;
import javax.swing.*;
import java.awt.Button;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
* Tragen Sie hier eine Beschreibung der Applet-Klasse Potenz ein.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Fib extends Quersumme
{

public void init()

{
super.init();
}


public void rechne ()

{
int x, z;
x = Integer.parseInt (textFeld1.getText());
z = fibu (x);
textFeld3.setText (Integer.toString(z));

}



public int fibu ( int x)

{
if(x <= 2)
{return 1;}





else return fibu(x-1)+fibu(x-2);

}


}












[/Java]
 

XHelp

Top Contributor
Dann mach mal was!
Du fragst dich jetzt bestimmt: "was denn"? Genau die selbe Frage stelle ich mir gerade auch: "was funktioniert denn nicht???"
 
D

deroldendorfer

Gast
Das Problem ist das meine Rechunng falsch ist und ich leider nicht auf den richtigen weg komme, vielleicht hast du ja eine idee. Ich bin echt ratlos. Vielleicht kannst du mir ja einen anfang für den richtigen rechenenweg geben, wäre echt nett
 
D

deroldendorfer

Gast
na wenn ich zum beispiel 7 eingeben kommt 13 raus und nicht das richtige ergebnis
 
D

deroldendorfer

Gast
ahh ich habe gerade nochmal gegooglet, das ergebnis stimmt ja, verdammt, das hätte ich mal vorher tun sollen.

Danke trotzdem für den durchaus hilfreichen Hinweis :)
 

illuminus

Mitglied
Mein Vorschlag für ein schnelleres Abarbeiten:

pre = 0
akt = 0

next(){
buf = akt
akt += akt == 0 ? 1 : pre
pre = buf
}

Bei deiner Version ergibt sich bei großen Fibos ne recht lange rechendauer, da die vorherigen neu gerechnet werden müssen


Zur Vorgabe dann ggf rauf rattern, ist die zahl kleiner -> next()
ist sie gleich ist es die Vorgegebene
ist sie größer ist die Vorgegebene keine Fibo
 
Zuletzt bearbeitet:

Landei

Top Contributor
Eine wirklich schnelle Berechnung (basierend auf dieser Formel Fibonacci-Folge ? Wikipedia ) ist:

Java:
import java.math.BigInteger;

    //Nach: Otto Foster, Algorithmische Zahlentheorie, S.19
    public static BigInteger fib (int n) {
        if (n <= 1) return BigInteger.valueOf(n);
        BigInteger x = BigInteger.ONE;
        BigInteger y = BigInteger.ZERO;
        for (int k = (32 - Integer.numberOfLeadingZeros(n)) - 2; k >= 0; k--) {
            BigInteger xx = x.pow(2);
            x = xx.add(x.multiply(y).shiftLeft(1));
            y = xx.add(y.pow(2));
            if(((1 << k) & n) > 0) {
                BigInteger temp = x;
                x = x.add(y);
                y = temp;
            }
        }
        return x;
    }
 

myjday

Aktives Mitglied
Schönen Guten Abend. Hier eine kleine und leichte Alternative

Java:
public class Fibonacci {

	public static void main(String[] args) {
		
		// Jede Zahl ist die Summe ihrer beiden Vorgänger

		// Festlegen der verwendeten Speicherstellen

		int zahl1 = 0;
		int zahl2 = 1;
		int zahl3 = zahl1 + zahl2;	

		int laufzahl = 0;
		
		// Beispiel: Ausgabe der ersten 25 Zahlen
		
		int anzahl   = 25;

		// Ausgabe der ersten beiden Zahlen vor Eintritt in die Schleife.

		System.out.print(zahl1 + " " + zahl2 + " ");

		// Innerhalb der Schleife werden anzahl-2 Zahlen ausgegeben
		// (zahl1 und zahl2 zählen ja auch dazu)

		while(laufzahl < (anzahl-2)){

			System.out.print(zahl3 + " ");

			// Zuweisen und Neuberechnen der Speicherstellen

			zahl1 = zahl2;
			zahl2 = zahl3;

			zahl3 = zahl1 + zahl2;

			// Zähle die Anzahl der Durchläufe mit.
			laufzahl = laufzahl + 1;
		}
		
		System.out.println();
	}
}

Gruß,
myjday
 
Ä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
M Fibonacci-Linear und Rekursiv Java Basics - Anfänger-Themen 14
W Fibonacci Zahlenberechnung Java Basics - Anfänger-Themen 9
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