Leonardo number/de
From Lazarus wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
Leonardo Zahlen
Die Leonardo Zahlen(-Folge) ist eine Reihe von Zahlen:
1, 1, 3, 5, 9, 15, 25 ...
Es gibt zwei Methoden um sie zu ermitteln:
rekursive Methode
function LeonardoNumber( n : integer ):integer;
begin
if n > 1 then
result := LeonardoNumber( n - 1 ) + LeonardoNumber( n - 2 ) + 1
else
result := 1;
end;
Für Zahlen kleiner/gleich 1 (kleiner als 2) wird der Rückgabewert fest vorgegeben. Für Zahlen größer als 1 benutzt der Algorithmus jeweils den Vorgänger und Vorvorgänger zur Ermittlung des Rückgabewerts.
Unter Benutzung der Fibonacci Zahlen
function LeonardoNumber2( n : integer ):integer;
begin
result := 2 * FibonacciNumber( n + 1) - 1
end;
Bem.: Die Fibonacci-Zahlen lassen sich auch in einer geschlossenen, nicht rekursiven Art ermitteln, somit auch die Leonardo-Zahlen das würde aber hier zu weit führen. Siehe dazu den entsprechenden Wikipedia-Artikel unter Fibonacci Zahlen