Portal > Foren > Java > Allgemeine Java-Programmierung > java fibonacci programm
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 01.06.2005, 17:28 Nach oben    #1
draco.ophelia
Gast
 
Beiträge: n/a
Standard java fibonacci programm

hallo,
ich muss für die schule ein programm schreiben hab aber kein plan wie ich das machen soll......wir sollen rekursiv eine fibonacci folge erstellen. Nun ich habe schon ein paar lösungsansätze gefunden im e-net hab aber kein plan was ich damit anfangen soll. wäre cool wenn einer von euch nen proggi zu verfügung hätte....

schon ma im vorraus vielen dank

--------------
draco.ophelia
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.06.2005, 19:20 Nach oben    #2
Erfahrener Benutzer
 
Benutzerbild von peschmae
 
Registriert seit: 29.05.2004
Beiträge: 228
Standard

Wie rechnet man die denn aus?

MfG Peschmä
__________________
Amazon.de | The Java Trap | Freie Software | Freie Software vs. Open Source | GNU Classpath | GCJ | SableVM
"We should forget about small efficiencies, say about 97% of the time: Premature optimization is the root of all evil." - Donald Knuth
peschmae ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.06.2005, 21:30 Nach oben    #3
draco.ophelia
Gast
 
Beiträge: n/a
Standard

naja das ist da problem ich hab keine ahnung
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.06.2005, 21:50 Nach oben    #4
Neuer Benutzer
 
Registriert seit: 31.05.2005
Beiträge: 3
Standard

fibonacci folge also rekursiv?

also die fibonacci folge sieht wiefolgt aus, wenn ich mich nicht irre:

1, 1, 2, 3, 5, 8, 13, 21, ...

Das Bildungsgesetz lautet wie folg:

fib(n) = fib(n-1) + fib(n-2) mit fib(1) = fib(2) = 1

die zahl bildet sich also aus der addition der beiden vorgänger. Zudem muss man wissen, dass die beiden ersten elemente 1 sind.


damit ergibt sich die relativ einfache rekursive funktion:

Code:
 public static long fib(int a){
  if (a==1||a==2) return 1;
  else return fib(a-1)+fib(a-2);
}
was aber das wichtigeste dabei ist, dass du verstehst, wie eine rekursive funktion funktioniert und fibonacci ist nunmal eines der einfachsten beispiele

grüße

lost-prophet
lost-prophet ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.06.2005, 23:35 Nach oben    #6
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Wobei eine solche Rekursion ja nicht gerade das gelbe vom Ei ist - auf die Geschwindigkeit bezogen.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.06.2005, 07:05 Nach oben    #7
Erfahrener Benutzer
 
Registriert seit: 16.11.2005
Beiträge: 242
Standard

Ein Kumpel von mir hat so was mal geschrieben und hat seinen SOPRA Tutor ziehmlich blöd dastehen lassen, was die Geschwindigkeit betrifft. Mein Kumpel fasselte was von Cachen der Ergebnisse. Wie oder Was keine Ahnung ich werd mal nachhacken falls ich Ihn die nächste Zeit sehe.
nove ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.06.2005, 10:32 Nach oben    #8
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.129
Standard

Code:
// Unser cache
private static List fibos = new ArrayList();
public static long fib(int a) {
	// Sonderfälle (cache nicht nötig)
	if(a <= 2) { // a < 3
		return 1;
	}
	// Cache auslesen
	Long cachedFibo = (Long)fibos.get(a);
	// Cache existiert, gib dessen Wert zurück
	if(cachedFibo != null) {
		return cachedFibo.longValue();
	}
	// Kein Cache, fibo berechnen, cachen, zurückgeben
	long temp = fib(a-1)+fib(a-2);
	fibos.set(a, new Long(temp));
	return temp;
}
Sowas?
Ist jetzt natürlich nur oberflächlich implementiert und könnte noch optimiert werden, aber ist ja auch nur ein Beispiel (und ungetestet).
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Java Programm - Code Frage (Problem) Finki Allgemeine Java-Programmierung 16 23.10.2005 12:36
Java Programm wie Windows Taskleiste Cyjackz Desktop-Applikationen und Grafik 0 17.09.2005 23:19
[BUCH] Java ist auch eine Insel kampet Literatur 5 22.02.2005 14:40
fremdes Programm aus Java aufrufen miri Allgemeine Java-Programmierung 1 19.11.2004 18:49
java programm ausführen alekz Allgemeine Java-Programmierung 4 26.10.2004 01:01


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45