Do not speak Portuguese? Translate this site with Google or Bing Translator
PHP fibonacci sequence

Posted on: October 02, 2020 09:35 PM

Posted by: Renato

Categories: Fibonacci PHP

Views: 3824

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


2

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 2 Comments
  • iphone 12 phone case
    iphone 12 phone case - há 3 anos
    My spouse and I absolutely love your blog and find nearly all of your post's to be exactly I'm looking for. Would you offer guest writers to write content for yourself? I wouldn't mind composing a post or elaborating on many of the subjects you write in relation to here. Again, awesome site!| [url=http://lexlydia.net/forums/users/oscarewald4/]iphone 12 phone case[/url]
  • Renato de Oliveira Lucena
    Renato de Oliveira Lucena - há 4 anos
    - Indiano ...जिंदगी आसान नहीं होती, इसे आसान बनाना पड़ता है! कुछ 'अंदाज' से, कुछ 'नजर अंदाज' से! - अज्ञात - PORTUGUÊS ... a vida não é fácil, tem que ser facilitada! Com algum 'estilo', Com algum 'look'! - Desconhecido

Blog Search


Categories

OUTROS (16) Variados (109) PHP (133) Laravel (171) Black Hat (3) front-end (29) linux (114) postgresql (39) Docker (28) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (56) devops (25) nodejs (5) npm (3) nvm (1) git (8) firefox (1) react (7) reactnative (5) collections (1) javascript (7) reactjs (8) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (2) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (12) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (5) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (3) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (43) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (2) jwt (5) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (3) Architecture (4) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (2) autorizacao (2) authentication (4) authorization (3) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1) Axios (1) Fetch (1) Deepin (1) vue (4) nuxt (1) PKCE (1) Oauth2 (2) webhook (1) TypeScript (1) tailwind (1) gource (2)

New Articles



Get Latest Updates by Email