Page 1 sur 1

suite de Fibonacci

Posté : 15 oct. 2010, 15:18
par Shim
Bonjour j'ai un peu de mal a comprendre le fonctionnement; DItes moi si je suis dans le vrai svp.

<?php
function fib($nombre){
if ($nombre<0) {
return (0);
}
La ca veut dire crées une fonction fib avec le parametre nombre. si nombre est inferieure a zero considere qu'il vaut zero ? elseif ($nombre<2) {
return ($nombre);
}
la sinon si nombre est inférieur a 2 retourne nombre
return fib ($nombre-1)+fib($nombre-2);
}
retourne le nombre d'avant + le nombre encore avant ?
for ($i=0;$i<20;$i++){
$nouveau_nombre=fib($i);
echo $nouveau_nombre;
echo '<br>';
}
ici on dit a l'ordi que tant que $i est inferieur a 2 il faut ajouter $i a lui même et creer une variable nouveau_nombre avec se resultat et l'afficher dans le html ?
?>
C'est tres brouillont mais j'ai bcp de mal a le conceptualiser.

Re: suite de Fibonacci

Posté : 15 oct. 2010, 15:25
par stealth35
et comme ca :
function fibo($n)
{
    if($n <= 1)
    {
        return $n;
    }
    else
    {
        return fibo($n - 1) + fibo($n - 2);
    }
}

Re: suite de Fibonacci

Posté : 16 oct. 2010, 10:34
par Ryle
Voici ce que fait ton code :)
<?php
	function fib($nombre){ // crées une fonction fib avec le parametre nombre
		if ($nombre<0) { // si nombre est inferieure a zero
			return (0); // la fonction retourne la valeur 0
		}
		elseif ($nombre<2) { // sinon si nombre est inférieur a 2
			return ($nombre); // retourne la valeur de nombre
		}

		return fib ($nombre-1)+fib($nombre-2); // retourne la somme (a+b) du résultat de la fonction fib() appliquée à la valeur "nombre-1" (donc 5 si nombre=6) et du résultat de la fonction fib() appliquée à la valeur "nombre-2" (donc 4 si nombre=6)
	}

// ici nous ne sommes plus dans la fonction

for ($i=0;$i<20;$i++){ // Pour i allant de 0 à 19 (strictement inférieur à 20)
		$nouveau_nombre=fib($i); // calcul le résultat de la fonction fib() appliquée à la valeur de i (et stock le résultat dans $nouveau_nombre)
		echo $nouveau_nombre; // affiche ce résultat
		echo '<br>'; 
	}
?>
En résumé, tu appliques la fonction fib() au nombre 0, tu affiches le résultat, puis tu recommences avec la valeur 1, la valeur 2, etc. jusqu'à 19 pour obtenir les 20 premiers résultats de la suite de Mr Fibo :)