Delphi-PRAXiS
Seite 2 von 4     12 34      

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)

alcaeus 11. Apr 2005 15:17

Re: Fibonacci-Zahlen
 
Zitat:

Zitat von malo
Nur mal so, aber was sind Fibonacci-Zahlen? :gruebel:

Guckst du: http://de.wikipedia.org/wiki/Fibonacci-Zahlen
Ich frag mich warum Daniel wohl den wiki-Button eingebaut hat ;)

Greetz
alcaeus

Binärbaum 11. Apr 2005 15:19

Re: Fibonacci-Zahlen
 
Zitat:

Zitat von malo
Nur mal so, aber was sind Fibonacci-Zahlen? :gruebel:

Schau mal hier: Fibonacci-Zahlen

MfG
Binärbaum

Jelly 11. Apr 2005 15:38

Re: Fibonacci-Zahlen
 
Ob for-Schleife oder rekursiv. Aber auf jeden Fall sollte das gleiche Ergebnis rauskommen. Tuts in diesem Fall aber nicht :mrgreen:
Also irgendwer hat sich da wohl vertan.

BenjaminH 11. Apr 2005 15:50

Re: Fibonacci-Zahlen
 
So wie ich das sehe (experimentiert) ist das von Leddl richtig :thumb:

Elite 11. Apr 2005 15:59

Re: Fibonacci-Zahlen
 
Zitat:

Zitat von Jelly
Aber auf jeden Fall sollte das gleiche Ergebnis rauskommen.

Das wär allerdings nicht schlecht. Mit dieser Funktion dürftest du aber auch das Gewünschte erreichen:
Delphi-Quellcode:
function fibonacci(Index : Integer) : Int64;
begin
  result := round((1/sqrt(5))*(power((1+sqrt(5))/2, index-1)-power((1-sqrt(5))/2,index-1)));
end;
Keine Rekursion und keine Schleife, sondern reine Mathematik.


Edit: Diese Version geht davon aus, dass die Fibonacci-Zahlenreihenfolge bei 0 und nicht bei 1 beginnt. (Definitionssache je nach Problemstellung)

leddl 11. Apr 2005 16:02

Re: Fibonacci-Zahlen
 
Hehe, da sieht man wieder, was Rekursion so alles bringen kann. Das Ergebnis kann - schon wenn man nur einen Blick auf den Code wirft - eigentlich nur richtig sein.
Und besser langsam und richtig, als schnell und falsch! ;)
Das Problem an glkgereon's Code ist, daß nach dem ersten Aufruf Last immer gleich Result ist, und somit Result immer einfach nur verdoppelt wird. Aber das ist eben in so ner Schleife nicht sofort zu erkennen. Aber das hatte mich heute schon einmal irritiert.

Sharky 11. Apr 2005 16:14

Re: Fibonacci-Zahlen
 
So,

jetzt habt ihr den Thread so schön zerredet das die lieben Code-Manager sicher nicht mehr wissen was sie nun in die Code-Library aufnhemen sollen und was nicht :roll:
Herzlichen Glückwunsch

JasonDX 11. Apr 2005 16:15

Re: Fibonacci-Zahlen
 
hier findet man das:
Delphi-Quellcode:
procedure Fibonacci(von: integer): int64;
var
  alt, uralt: int64;
  i: integer;
begin
  alt := 0;
  result := 1;
  for i := 2 to von do begin
    uralt := alt;
    alt := result;
    result := uralt + alt;
  end;
end;
und

Delphi-Quellcode:
procedure Fibonacci(von: integer): integer;
asm
    MOV EDX, von
    SUB EDX, 1 
    MOV EAX, 0  //alt
    MOV EBX, 1  //neu
    JZ @@end
    @@1:
    MOV ECX, EAX
    MOV EAX, EBX
    MOV EBX, EAX
    ADD EBX, ECX
    SUB EDX, 1 
    CMP EDX, 1 
    JAE @@1 
    @@end:
    MOV result, EBX
end;
@Elite: Ich weiß nicht mehr genau, aber wird die Formel nach ziemlich großen Zahlen nicht etwas ungenau? (Ich weiß bloß noch, dassma mal durch Annäherung was ähnliches rausgekriegt ham)
Und durch ein inc(Index) dürft das Problem mit Beginn bei 0 oder 1 geklärt sein ;)

@Sharky: Man kann ja alle 4 Versionen hinzufügen (Rekursiv, Iterativ, Iterativ ASM und Formel) :zwinker:

glkgereon 11. Apr 2005 16:21

Re: Fibonacci-Zahlen
 
ok, also meins funzt jetzt auch.

ich werd, wenns recht is, die versionen in nem neuen thread nochmal reinstellen.

werd alle eigentlichen autoren nennen, und'n performance-test machen vorher.

das asm endet imho in ner endlosschleife....mein prog hängt sich dabei einfach auf...

glkgereon 11. Apr 2005 17:07

Re: Fibonacci-Zahlen
 
Liste der Anhänge anzeigen (Anzahl: 1)
irgendwie hängen die asm und die rekursive ziemlich!!!

oder mach ich was falsch?

irgendwie funkt das net :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.
Seite 2 von 4     12 34      

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