[Rio-pm] sequencia fibonacci

Victor Ramos victornrm em gmail.com
Sábado Maio 2 20:51:49 PDT 2009


Estava dando uma olhada no wikipedia,
http://pt.wikipedia.org/wiki/Número_de_Fibonacci<http://pt.wikipedia.org/wiki/N%C3%BAmero_de_Fibonacci>,
e vi esse algoritimo em php

<?php
/* Algoritmo Recursivo da Seqüência Fibonacci */
function fibonacci($i) {
    return $i < 2 ? $i : fibonacci($i-1) + fibonacci($i-2);
}
/* Chamando ... */
for($i=1;$i<10;$i++) {
    echo fibonacci($i)."\r\n";
}
?>

como no wiki não havia a verção em perl, pensei rapidamente num
algorítimo clone, algo tipo
sub fibo {
  return $_ < 2 ? $_ : fibo($_-1) + fibo($_-2);
}
for (my $i=0;$i<10;$i++){
print fibo($i)."\n";
}

Mas me surpreendi por não funcionar !
claro que eu poderia fazer algo do tipo:
my ($a,$b)=(1,2);
print "$a\n$b\n";
for(1..10) {
  ($a,$b) = ($b,$a+$b);
  print "$b\n"
}

mas queria saber o motivo do outro algorítimo falhar, e outra quando eu tentei


sub fibo {
  return $_ < 2 ? $_ : fibo($_-1) + fibo($_-2);
}
print fibo($i)."\n" for (1..10);

a maquina ficou extremamente lenta, sem progredir , ai cancelei.
:~$ perl -v
This is perl, v5.10.0
quero ver os perl hackers me ajudarem a enteder essa :P

abraços
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20090503/1c232fcd/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm