Thema: Delphi Fibonacci-Zahlen

Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

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

Re: Fibonacci-Zahlen

  Alt 11. Apr 2005, 16:15
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)
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat