Série Fibonacci PHP

王林
王林original
2024-08-29 13:12:20643parcourir

En langage profane, une série de Fibonacci est une série d'éléments formés ou obtenus, lorsque les deux éléments précédents sont ajoutés pour former l'élément suivant jusqu'à ce que nous obtenions la taille de série requise. Nous commençons généralement la série de Fibonacci par 0 et 1.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

La série une fois formée, apparaît comme ci-dessous :

0, 1, 1, 2, 3, 5, 8, 13, 21, 34

Comme indiqué ci-dessus, le nombre suivant est obtenu en additionnant les deux nombres précédents.

  • Le '2' à la 4ème position (nème position) de la série donnée ci-dessus, est obtenu en additionnant ses deux nombres précédents[ [n-1] et n-2]), 1.
  • Le « 3 » est obtenu en additionnant ses deux nombres précédents,2.
  • Le « 5 » est obtenu en additionnant ses deux nombres précédents,3.
  • Et ainsi de suite.

Série Fibonacci en PHP et la logique

Ici, nous verrons spécifiquement obtenir la série de Fibonacci pendant que nous travaillons dans un environnement PHP. La différence réside dans le format dans lequel nous allons coder, c'est-à-dire utiliser une balise de début pour un script PHP et sa balise de fin.

<?php
…;
…;
…;
?>

Cela vous aidera à comprendre et à apprendre comment cette série de Fibonacci est générée en PHP en utilisant deux méthodes qui sont la manière itérative et la manière récursive.

Lorsque nous recevons un nombre, c'est-à-dire « n » qui est la taille de la série, nous essaierons de trouver la série de Fibonacci jusqu'au nombre donné.

Par exemple, si nous devons créer Fibonacci pour n=5, nous afficherons des éléments jusqu'au 5ème terme.

Exemple n°1

  • Entrée : n = 9
  • Sortie : 0 1 1 2 3 5 8 13 21

Exemple n°2

  • Entrée : n=13
  • Sortie :0 1 1 2 3 5 8 13 21 34 55 89 144

Logique en PHP

La logique est la même que celle indiquée ci-dessus. Ici, nous avons donné n=10, c'est-à-dire que nous devons trouver les éléments jusqu'au nième terme. Ainsi, nous continuerons à suivre notre logique jusqu'à ce que nous ayons n termes dans notre série.

Voyons un des exemples donnés ci-dessus.

Dans l'un des exemples ci-dessus, nous avons n=9 et Logic dit que :

  • Initialisez le premier chiffre à 0.
  • Initialisez le deuxième chiffre à 1.
  • Imprimez le premier et le deuxième chiffres.
  • La boucle commence ici.
  • Pour l'élément suivant de la série, c'est-à-dire le 3rd élément [nth élément], nous ajouterons ses deux nombres précédents immédiats [(n-1) et (n- 2)] pour obtenir le numéro suivant de la série, comme ici, 0 + 1 = 1.

Pour n=3

  • n – 1 = 3 – 1 = 2ème élément de la série = 1
  • n – 2 = 3 – 2 = 1er élément de la série = 0 3rd élément = (n-1) + (n-2) = 1 + 0 = 1

Ainsi, le troisième élément de la série est 1.

  • De même selon la logique, pour obtenir le 4ème élément [n] de la série il faut additionner ses nombres précédents e. (n-1) et (n-2) éléments.

Maintenant, à ce stade, « n » est égal à « 4 » :

  • n – 1 = 4 – 1 = 3ème élément de la série = 1
  • n – 2 = 4 – 2 = 2ème élément de la série = 1 4ème élément = (n-1) + (n-2) = 1 + 1 = 2

Ainsi, nous obtenons notre 4ème élément comme 2.

Ainsi, pour « n » est égal à 9, en suivant la même logique que celle expliquée ci-dessus, nous obtenons la séquence telle que la séquence de Fibonacci est 0 1 1 2 3 5 8 13 21

Série PHP pour l'impression de Fibonacci avec deux approches

Il existe essentiellement deux versions célèbres sur la façon dont nous pouvons écrire un programme en PHP pour imprimer la série de Fibonacci :

  • Sans récursion
  • Avec récursion

Comme d'habitude en PHP, nous utiliserons l'instruction « echo » pour imprimer le résultat.

1. La méthode non récursive

Également connu pour l'utilisation de l'itération. C'est l'approche où nous commencerons la série avec 0 et 1. Après quoi nous imprimerons le premier et le deuxième nombres. Suite à quoi nous commencerons notre itération en utilisant une boucle, nous utilisons ici une boucle while.

Script PHP pour imprimer les 10 premiers éléments de la série Fibonacci.

Code :

<?php
function Fibonacci($n)
{
$num1= 0;
$num2= 1;
$counter= 0; while($counter < $n)
{
echo ' '.$num1;
$num3= $num2 + $num1;
$num1= $num2;
$num2= $num3;
$counter= $counter+1;
}
}
//for a pre defined number for Fibonacci.
$n=10; Fibonacci($n);
?>

Explication du code :

  1. Here n is defined as equal to 10, so the logic will run till nth element e. Until we have n=10 elements in the series.
  2. First element is initialized to 0 and second element is initialized to 1, e. num1 = 0 and num2 = 1.
  3. The two elements i.e. num1 and num2 are printed as the first and second elements of the Fibonacci series.
  4. The logic we discussed will be used from here on and our iteration loop starts.
  5. According to our logic, to get num3, we need to add num1 and num2. Since currently num1 = 0 and num2 = 1, num3 comes out as 1.
  6. Now new number obtained is placed in num2 variable and num2 is saved in num1 variable. Basically simple swapping is taking place so that, now num1 is equal to ‘1’ and num2 = newly obtained num3 i.e. ‘1’.
  7. So when the next iteration happens and num3 is obtained by adding current values of num1 and num2, which, according to our PHP script, are as follows:
      • num1 = 1
      • num2 = 1
      • num3 = num1 + num2 = 1 + 1 = 2

Thus we get our next number in the Fibonacci Series.

  1. Similarly, the iteration keeps on till we achieve n = 10, size of the series that was defined in the program itself.

When the above program is executed, we get the output as follows:

Série Fibonacci PHP

2. The Recursion Way

By recursion, we mean the way where the same function is called repeatedly until a base condition is achieved or matched. At this point, recursion is stopped.

The said “function is called repeatedly” phrase points to the section in your code where we will define our logic for the Fibonacci Series.

Below is an example of generating Fibonacci Series in PHP, using If-Else conditions giving way for our recursive approach.

Here is the PHP Scripts for printing the first 15 elements for Fibonacci Series.

<?php
function Fibonacci($num)
{
//If-Else IF will generate first two numbers for the series if($num == 0)
return 0;
else if($num == 1) return 1;
// This is where Recursive way comes in.
//recursive call to get the rest of the numbers in the series else
return(Fibonacci($num -1) + Fibonacci( $num -2));
}
//For a given n=15
$num =15;
for($counter = 0; $counter < $num; $counter++)
{
echo Fibonacci($counter).' ';
}
?>

Code Explanation:

This is the recursive way, which means our function that contains our logic is called again and again for generating the next element in the series until our condition for achieving a specific series size is obtained.

In Iterative approaches, the First and Second element is first initialized and printed. Here we allow a For Loop to give us our first and second elements starting with 0 and 1.

  1. We are using a For loop having a ‘counter’ variable that starts with 0. The For loop works up till the given ‘n’, size for the series.
  2. when loop starts, with the counter variable as 0, we use the recursion approach and call our defined function, Fibonacci ( ).
  3. Here code starts, with If and Else IF condition.
  4. First IF condition checks if ‘num’ variable holds value as ‘0’, if yes, then the code prints or returns ‘0’ as the element for the series.
  5. Similarly, second Else-If condition checks for the value ‘1’, if the ‘num’ variable holds ‘1’ as its value, the program returns it as it is.
  6. Next Else condition recursively calls the Fibonacci function for’ num’ values other than ‘0’ and ‘1’, continuing to reading the values from the For loop counter.

This is where our Fibonacci Logic comes into work and the next number in the sequence is obtained by adding its previous two numbers. Because this is the recursive method, we need to give a counter value to count the recursions equal to nth value, which is being handled by our For Loop.

When the above program or code is executed, the following output is displayed.

Série Fibonacci PHP

The Fibonacci Series does not only appear in mathematics or science calculations but in nature too, have you ever noticed Yellow chamomile flower head.

The Fibonacci Series if plotted on a graph, it forms a spiral called Fibonacci Spiral. It is also one of the gems given by Indian soil. It is found in Indian Mathematics as early as 200 BC in the works done by the mathematician, Pingala. Later Fibonacci introduced the sequence to European countries in his book Liber Abacci in 1200s.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Échange en PHPArticle suivant:Échange en PHP