Original post: http://anothermysqldba.blogspot.com/2015/06/fibonacci-sequence-procedure.html
Bueno, ha sido un tiempo desde que he publicado, lo siento por eso. Hoy estaba viendo reposiciones de la serie de televisión Fringe y cuando Walter referencia a la secuencia de Fibonacci Me lado seguido con opciones de MySQL para esto.
Ahora este post ya existía:
Así que tomé ese puesto y se expandió en él un poco, el resultado es un procedimiento que se puede llamar y devolver el rango dentro de la secuencia de Fibonacci que usted está después.
El procedimiento es el siguiente:
Usted puede llamar a este y pase lo que sea los valores y rangos que está después.
Así que si desea que el quinto valor (empezando desde 0) en la secuencia y el siguiente valor
Así que si desea que el valor 30a (empezando desde 0) en la secuencia y el siguiente valor
Así que si desea que el valor 150 (empezando desde 0) en la secuencia y el siguiente valor
Así se entiende la idea. Ahora usted también puede ampliar la gama de resultados si desea más de 2 solo cambia el segundo valor en la llamada a procedimiento.
De todos modos, espero que alguien le resulta útil y el crédito para la base de la consulta no ir al post original.
Bueno, ha sido un tiempo desde que he publicado, lo siento por eso. Hoy estaba viendo reposiciones de la serie de televisión Fringe y cuando Walter referencia a la secuencia de Fibonacci Me lado seguido con opciones de MySQL para esto.
Ahora este post ya existía:
Así que tomé ese puesto y se expandió en él un poco, el resultado es un procedimiento que se puede llamar y devolver el rango dentro de la secuencia de Fibonacci que usted está después.
El procedimiento es el siguiente:
delimiter //
CREATE PROCEDURE `Fibonacci`(IN POS INT, IN RANG INT, IN LIMTED INT)
BEGIN
select FORMAT(Fibonacci,0) AS Fibonacci from (
select @f0 Fibonacci, @fn:=@f1+@f0, @f0:=@f1, @f1:=@fn
from (select @f0:=0, @f1:=1, @fn:=1) x,
information_schema.STATISTICS p limit LIMTED) y LIMIT POS, RANG;
END//
delimiter ;
Usted puede llamar a este y pase lo que sea los valores y rangos que está después.
Así que si desea que el quinto valor (empezando desde 0) en la secuencia y el siguiente valor
> CALL Fibonacci(5,2,100);
+-----------+
| Fibonacci |
+-----------+
| 5 |
| 8 |
+-----------+
Así que si desea que el valor 30a (empezando desde 0) en la secuencia y el siguiente valor
> CALL Fibonacci(30,2,100);
+-----------+
| Fibonacci |
+-----------+
| 832,040 |
| 1,346,269 |
+-----------+
Así que si desea que el valor 150 (empezando desde 0) en la secuencia y el siguiente valor
> CALL Fibonacci(150,2,1000);
+--------------------------------------------+
| Fibonacci |
+--------------------------------------------+
| 9,969,216,677,189,305,000,000,000,000,000 |
| 16,130,531,424,904,583,000,000,000,000,000 |
+--------------------------------------------+
Así se entiende la idea. Ahora usted también puede ampliar la gama de resultados si desea más de 2 solo cambia el segundo valor en la llamada a procedimiento.
> CALL Fibonacci(0,10,100);
+-----------+
| Fibonacci |
+-----------+
| 0 |
| 1 |
| 1 |
| 2 |
| 3 |
| 5 |
| 8 |
| 13 |
| 21 |
| 34 |
+-----------+
> CALL Fibonacci(30,5,100);
+-----------+
| Fibonacci |
+-----------+
| 832,040 |
| 1,346,269 |
| 2,178,309 |
| 3,524,578 |
| 5,702,887 |
+-----------+
De todos modos, espero que alguien le resulta útil y el crédito para la base de la consulta no ir al post original.