PHP fibonacci sequence

Posted on: October 02, 2020 09:35 PM

Posted by: Renato

Categories: Fibonacci PHP

Views: 118

Numero Fibonaci

Em matemática, os números de Fibonacci , comumente denotados por F n , formam uma sequência , chamada de sequência de Fibonacci , de forma que cada número é a soma dos dois precedentes, começando em 0 e 1.

Fibonacci series of given number in PHP

php-fibonacci-sequence

Até Hoje apanho com funçôes recursivas, vamos la no artigo abaixo. A série de Fibonacci é uma série de números em que o próximo número é encontrado pela soma dos 2 anteriores da série. Aqui estão os primeiros dígitos da série:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,….

Produzir a série em PHP é direto - e frequentemente uma questão de entrevista. Vamos codificar um agora! Começamos codificando uma função que retorna o enésimo número na série:

function fib($n){
    return fib($n-1) + fib($n-2);
}

Observe que essa função chama a si mesma. Isso é chamado de função recursiva . Funções recursivas são muito poderosas (uma pequena quantidade de código produz ótimos resultados), mas podem levar a loops infinitos com muita facilidade. Normalmente, as funções recursivas são usadas para coisas como iterar em árvores ou onde há algum tipo de relacionamento pai-filho. Você notará que o que fizemos ainda não funciona, pois não há um ponto de partida. Se passássemos fib (2), a função procuraria fib (0) e fib (1) - que nunca são calculadas. Vamos resolver isso agora:

function fib($n){
    if($n<2) return $n;
    return fib($n-1) + fib($n-2);
}

Aqui vamos nós! Se passarmos um “2”, obtemos calculando a fib (1) e a fib (0) - o que funciona! As funções recursivas podem ser difíceis de entender - então sinta-se à vontade para rastrear o que cada parte da função está fazendo. Depois de fazer isso algumas vezes, eles virão naturalmente para você. Agora, para chamar as funções para realmente imprimir a série, escrevemos um loop de invólucro:

for($i=0;$i<11;$i++){
    echo fib($i) . " ";
}

Vamos juntar tudo em um script:

function fib($n){
    if($n<2) return $n;
    return fib($n-1) + fib($n-2);
}
for($i=0;$i<11;$i++){
    echo fib($i) . " ";
}

Isso produz:

0 1 1 2 3 5 8 13 21 34 55

função do tipo O ^ n. Isso significa que, à medida que n fica grande, todas as coisas demoram cada vez mais para serem calculadas.

Uma página do Liber Abaci de Fibonacci da Biblioteca Nazionale di Firenze mostrando (no quadro) a sequência de Fibonacci com a posição na sequência marcada em algarismos latinos e romanos e o valor em algarismos hindu-arábicos.

  • Liber_abbaci_magliab_f124r.jpg

Exemplos codigo github

- https://github.com/lucenarenato/php-fibonacci-sequence

php -S localhost:8001

Renato Lucena 2020

Share
About Author

Renato

Developer

Add a Comment
Comments 5 Comments
  • Renato de Oliveira Lucena
    Renato de Oliveira Lucena - 1 week ago
    - Indiano ...जिंदगी आसान नहीं होती, इसे आसान बनाना पड़ता है! कुछ 'अंदाज' से, कुछ 'नजर अंदाज' से! - अज्ञात - PORTUGUÊS ... a vida não é fácil, tem que ser facilitada! Com algum 'estilo', Com algum 'look'! - Desconhecido
  • Parbriz Bmw Seria 1 2011
    Parbriz Bmw Seria 1 2011 - 1 week ago
    Keep on working, great job! https://anunturi-parbrize.ro/parbriz-bmw-7.html
  • Luneta Solaris Alpino 2013
    Luneta Solaris Alpino 2013 - 2 weeks ago
    Why users still make use of to read news papers when in this technological globe all is accessible on web? https://anunturi-parbrize.ro/index.php?cauta=luneta+solaris
  • Geam Audi A5 Convertible 8F7 2013
    Geam Audi A5 Convertible 8F7 2013 - 2 weeks ago
    Actually no matter if someone doesn't know then its up to other users that they will help, so here it happens. https://anunturi-parbrize.ro/geam-audi-4.html
  • Luneta Daf Lf 2020
    Luneta Daf Lf 2020 - 2 weeks ago
    Undeniably believe that which you stated. Your favorite justification seemed to be on the net the easiest thing to be aware of. I say to you, I definitely get irked while people consider worries that they just do not know about. You managed to hit the nail upon the top and also defined out the whole thing without having side effect , people can take a signal. Will likely be back to get more. Thanks https://anunturi-parbrize.ro/luneta-daf-17.html