![]() |
Re: Fibonacci-Zahlen
Kanns bei mir nich compilieren, deshalb kann ich nich viel dazu sagen, aber was meinst du mit "hängen"? Brauchts nur lange oder hängt sich das Programm auf? Also mein Code funktioniert bei mir einwandfrei und selbst mit etwas höheren Zahlen merkt man keinen Hänger...
|
Re: Fibonacci-Zahlen
Zitat:
MfG Binärbaum |
Re: Fibonacci-Zahlen
naja, also ab 50 etwa brauchs deutlich mehr als 1-2 sek....so lang das ich abgebrochen hab.
aber die asm-lösung auch :gruebel: |
Re: Fibonacci-Zahlen
Ok, habs jetzt mal selbst getestet. Der rekursive Aufruf hinkt wirklich ab ca. 30 deutlichst hinterher. Wohl doch wirklich nich so gut. ;)
|
Re: Fibonacci-Zahlen
Ist doch logisch:
Code:
Und das ist erst die fünfte :stupid: .
-> = ruft auf
5. Fibonacci-Zahl Rekursiv: 2 3 -> 1 4 -> 2 5 -> 2 3 -> 1 iterativ: 2+1 -> 3 -> 4 -> 5 |
Re: Fibonacci-Zahlen
Man könnte die rekursive Variante noch verbessern (d.h. schneller machen), wenn man die schon berechneten Zwischenergebnisse speichert. Allerdings hat man dadurch wieder mehr Overhead, sodass letztlich dieser wieder den Performance-Gewinn dämpft.
MfG Binärbaum |
Re: Fibonacci-Zahlen
ich hab den asm-code nochmal angeguckt
wenn ich die funktion einmal aufrufe, reicht das:
Delphi-Quellcode:
function fib(von: integer): integer; assembler;
asm mov ecx, von mov eax, 1 mov ebx, 0 cmp ecx, 2 jbe @@endoffib sub ecx, 1 @@startLoop: mov edx, ebx mov ebx, eax add eax, edx sub ecx, 1 jnz @@startLoop @@endoffib: mov result, eax end; wenn ich sie in einer for-schleife aufruf, muss ich
Delphi-Quellcode:
anhängen :?:
//Das am anfang:
push eax push ebx push ecx push edx //und das am ende: pop edx pop ecx pop ebx pop eax Edit: source ausgebessert |
Re: Fibonacci-Zahlen
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Program von mir.
Gruß Hagen |
Re: Fibonacci-Zahlen
würdest du event. auch den source veröffentlichen?
|
Re: Fibonacci-Zahlen
[ot]@negaH Was wohl passiert wenn ich da -3 eingeb ;-) [/ot]
[Edit] Was ich eigentlich meine ist, das jede dieser funktionen vielleicht noch eine überprüfung zur gültigkeit des Indexes braucht [Edit=2] Jetzt weiß ich was passiert :-( nach einiger Zeit war der PC nicht mehr ansprechbar |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz