Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fibonacci-Zahlen (https://www.delphipraxis.net/43959-fibonacci-zahlen.html)

glkgereon 11. Apr 2005 11:24


Fibonacci-Zahlen
 
hi

hier ein function die einem die Index'te Fibonacci-Zahl liefert.

Delphi-Quellcode:
function Fibonacci1(Index: Integer):Int64;
var i:Integer;
    Last, New: Int64;
begin
  Result:=1;
  Last:=0;
  New:=1;
  for i:=2 to Index do
    begin
    Last:=Result;
    Result:=New;
    New:=Result + Last;
    end;
end;
Edit: ich hatte ne alte Version genommen :wall:
wieso merk ich das jetzt erst???? :wall:

leddl 11. Apr 2005 11:56

Re: Fibonacci-Zahlen
 
Warum so kompliziert? :gruebel:

Delphi-Quellcode:
function fibonacci(Index : Integer) : Int64;
Begin
  Case Index of
    1, 2 : Result := 1;
    Else Result := fibonacci(Index-2) + fibonacci(Index-1);
  End;
End;
PS: Rekursion is was Feines! :mrgreen:

//Edit: Integer in Int64 geändert. :oops:

glkgereon 11. Apr 2005 11:59

Re: Fibonacci-Zahlen
 
joa, haste recht.

ich find rekursiv immer bisschen schwerer nachzuvollziehen, und was schneller ist müsste man mal ausführlich testen.

aber tu deins mal auf Int64 umstellen ;)

leddl 11. Apr 2005 12:11

Re: Fibonacci-Zahlen
 
Zitat:

Zitat von glkgereon
ich find rekursiv immer bisschen schwerer nachzuvollziehen

Ich benutz es auch zu selten, aber in dem Fall springt einen die Rekursion ja schon fast an. ;)
Zitat:

Zitat von glkgereon
aber tu deins mal auf Int64 umstellen ;)

*Hust* *Hust* schon passiert. :wall: Hatte ich nich drangedacht!

rantanplan99 11. Apr 2005 12:25

Re: Fibonacci-Zahlen
 
Mal eine Notiz am Rande:

Erste Version mit for-Schleife:
+ Weniger Speicherverbrauch
+ schneller
- Nicht ganz so intuitiv

Zweite Version mit rekursion:
+ Ist intuitiv, leichter Verständlich
- Verbraucht mehr Speicher (Stack für Prozedur aufrufe)
- durch die Rekursion bedingter 'overhead' für Prozeduraufrufe und Rücksprung und dadurch etwas langsamer

Ich würde die erste Version bevorzugen, da sie etwas schneller ist.

rantanplan

glkgereon 11. Apr 2005 13:02

Re: Fibonacci-Zahlen
 
nichts gegen leddl, aber:

*g*

auch wenn ich die argumente nur teilweise nachvollziehen kann...

JasonDX 11. Apr 2005 13:06

Re: Fibonacci-Zahlen
 
@leddl: Die Umstellung auf int64 bringt dir relativ wenig, nachdem durch den rekusiven aufruf Zeit eher knapp ist als die größe des 32-Bit-Integers ;)

wenn mich nicht alles täuscht, gibts hier in der DP aber auch schon nen Fibonacci-code über asm! (Ich glaub von Illuminator war der....)

leddl 11. Apr 2005 13:11

Re: Fibonacci-Zahlen
 
Ach le**t mich doch alle! :mrgreen: :zwinker:

Ich kenn mich mit den ganzen Gschichten auch nich so aus. Is nur so, daß ich Rekursionen um einiges verständlicher und übersichtlicher finde. (Und ich hab halt nunmal gerne Code, den ich auch nach längerer Zeit schnell wieder verstehe) Und außerdem bekommt man in der Uni ständig beigebracht, möglichst viel rekursiv zu programmieren... :gruebel:

Aber wurscht, ich beuge mich der Mehrheit! Werde aber dennoch weiterhin meine hübschen Rekursionen verwenden. :mrgreen:

JasonDX 11. Apr 2005 13:20

Re: Fibonacci-Zahlen
 
Zitat:

Zitat von leddl
Is nur so, daß ich Rekursionen um einiges verständlicher und übersichtlicher finde. (Und ich hab halt nunmal gerne Code, den ich auch nach längerer Zeit schnell wieder verstehe) Und außerdem bekommt man in der Uni ständig beigebracht, möglichst viel rekursiv zu programmieren... :gruebel:

Passt auch so. Rekursiv ist einfacher zu verstehn ect., und die meisten Algorithmen (z.B. Heap- und Merge-Sort) haben log n Funktionsaufrufe.
Nachdem die Fibonacci-Funktion ein paar mehr hat (ws exponentiell), isses da nicht unbedingt rentabel ;)

malo 11. Apr 2005 15:08

Re: Fibonacci-Zahlen
 
Nur mal so, aber was sind Fibonacci-Zahlen? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr.
Seite 1 von 4  1 23     Letzte »    

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