AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fibonacci-Zahlen

Ein Thema von glkgereon · begonnen am 11. Apr 2005 · letzter Beitrag vom 26. Mai 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Fibonacci-Zahlen

  Alt 11. Apr 2005, 12:24
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
wieso merk ich das jetzt erst????
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 12:56
Warum so kompliziert?

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!

//Edit: Integer in Int64 geändert.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 12:59
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
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 13:11
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 von glkgereon:
aber tu deins mal auf Int64 umstellen
*Hust* *Hust* schon passiert. Hatte ich nich drangedacht!
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
rantanplan99
(Gast)

n/a Beiträge
 
#5

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 13:25
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
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 14:02
nichts gegen leddl, aber:

*g*

auch wenn ich die argumente nur teilweise nachvollziehen kann...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#7

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 14:06
@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....)
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 14:11
Ach le**t mich doch alle!

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...

Aber wurscht, ich beuge mich der Mehrheit! Werde aber dennoch weiterhin meine hübschen Rekursionen verwenden.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#9

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 14:20
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...
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
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#10

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 16:08
Nur mal so, aber was sind Fibonacci-Zahlen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz