El otro día un amigo que se esta introduciendo en el mundo de la progtamación me comento que andaba liado con la serie de fibonnaci, y se me ocurrió la idea de escribir una entrada sobre cono programar esta secuencia en php.
La serie de fibonnaci es un básico en el mundo de la programación y de lo primero que se aprende, así que no esta de mas recordar un poco en que consiste.
La sucesión comienza con los números 0 y 1, y a partir de estos, «cada término es la suma de los dos anteriores», es la relación de recurrencia que la define.
La resolución del algoritmo en pseucodigo seria asi:
Y la solución en forma de función seria la siguiente:
<?php
function fibonacci($n)
{
$fibonacci = [0,1];
for($i=2;$i<=$n;$i++)
{
$fibonacci[] = $fibonacci[$i-1]+$fibonacci[$i-2];
}
echo $fibonacci[$n];
}
fibonacci(10);
?>
Básicamente consiste en un función que recibe le numero que se quiere calcular en la serie de fibonacci.
Un array $fibonnacci al que le incluimos los dos primeros valores (0,1).
Y un bucle for que iniciamos en la posición 2 al no necesitar las dos primeras posiciones del array, que se recorre hasta el numero pasado a la función.
Que va sumando los números correspondientes mostrando con un echo el resultado al salir del bucle.
Muchas gracias por tu aportación. La he puesto a funcionar y es perfecta.
Pero y si, ahora , quisieramos saber específicamente el valor de un índice del array de Fibonacci ? Por ejemplo, ¿qué cantidad corresponde al índice 500? 500=>¿…?
¿qué código podríamos utilizar? Muchísimas gracias !!! Frank.
Si te das cuenta en el ejemplo a la funcion le pasamos los 10 primeros valores -> fibonacci(10);
Pues se quiremos 500 valores se lo tendremos que pasar a la funcion -> fibonacci(500);
Despues al ejecutar la funcion si pintara la posicion 500 con esta instruccion -> echo $fibonacci[$n];
Si quisiera que genere n numeros como lo realizaria?
Tendrias que poner el numero deseado
Hola, Muchas gracias
como puedo hacer el mismo ejercicio pero que un usuario en una pagina web
ingrese un numero y le muestre la secuencia fibonaci, ¿Me sirve un do -while o un while solo?
Puedes hacerlo de las dos maneras.