![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
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 |
|
| | Nach oben #2 |
| Erfahrener Benutzer Registriert seit: 29.05.2004
Beiträge: 228
|
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 |
| | |
| | Nach oben #4 |
| Neuer Benutzer Registriert seit: 31.05.2005
Beiträge: 3
|
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);
}
grüße lost-prophet |
| | |
| | Nach oben #6 |
| Chefkoch-Mod Registriert seit: 30.05.2004
Beiträge: 432
|
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 |
| | |
| | Nach oben #7 |
| Erfahrener Benutzer Registriert seit: 16.11.2005
Beiträge: 242
|
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.
|
| | |
| | Nach oben #8 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.129
| 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;
}
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. |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ä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 |