hab jetzt auch mal 'ne kleine Fibonacci-Function erstellt :engel:
- zusammen mit meiner TBigInt arbeitet sie schnomal bis Fibonacci(737)
(Cardinal bis 47. und Int64 bis 92.)
Delphi-Quellcode:
Function Fibonacci(
Index: Integer): Int64;
Var Next: Int64;
Begin
If Index < 0
Then Error(reInvalidOp);
Result := 0;
Next := 1;
While Index > 0
do Begin
Swap8(Result, Next);
Inc(Result, Next);
Dec(
Index);
End;
End;
Function Fibonacci(
Index: Integer): TBigInt;
Var Next: TBigInt;
Begin
If Index < 0
Then Error(reInvalidOp);
Result := 0;
Next := 1;
While Index > 0
do Begin
Swap(@Result, @Next, SizeOf(TBigInt));
Result.Add(Next);
Dec(
Index);
End;
End;
// alle Fibonacci-Zahlen bis zur 737. Zahl benötigten auf meinem PCchen ~90 ms
Var i: TBigInt;
i2: Integer;
For i2 := 0
to 737
do
i := Fibonacci(i2);
die Prozeduren Swap8 und Swap machen im Grunde nichts anderes als die Werte zu vertauschen
Delphi-Quellcode:
Var Temp: Typ_of_SwapVariables;
Temp := Result;
Result := Next;
Next := Temp;
PS: mal 'ne Frage, warum gibt es 2. CodeLib-Einträge?
Code-Library -> Algorithmen ->
Fibonacci in 6 Versionen
Code-Library -> Algorithmen ->
Fibonacci