Algorytm iteracyjny kodowany w Perlu
Generuj $n liczb Fibonacciego:####################################
for ($i=1; $i<=$n; $i++) # metoda iteracyjna
{
if ($i == 1) # definiuje pierwszy element ciągu
{
$fib_pre_previous = 0;
print "$fib_pre_previous\n";
}
elsif ($i == 2) # definiuje drugi element ciągu
{
$fib_previous = 1;
print "$fib_previous\n";
}
else # każdy kolejny element ciągu jest sumą dwóch poprzednich
{
$fib_sum = $fib_previous + $fib_pre_previous;
$fib_pre_previous = $fib_previous;
$fib_previous = $fib_sum;
print "$fib_sum\n";
}
}
####################################
Przy pomocy algorytmu iteracyjnego można wygenerować ciąg maksymalnie 1477 liczb Fibonacciego (wliczając 0), gdzie największa liczba ciągu wynosi
Warto przy tym zauważyć, że algorytm iteracyjny generujący ciąg Fibonacciego okazuje się najszybszy, najdokładniejszy i najbardziej efektywny w porównaniu z rekurencyjnym lub arytmetycznym.
W moich testach wydajności porównywałem sprawność różnych algorytmów w procesie generowania 1475 liczb Fibonacciego powtarzanym milion razy bez przerw pomiędzy cyklami. Algorytm iteracyjny okazał się 1,5 raza szybszy niż arytmetyczny,
co wykazałem porównując całkowity czas zużyty przez każdy z procesów w wielokrotnie powtarzanych cyklach.
Zapraszam zatem do gruntownego testowania algorytmu iteracyjnego!