Números fibonaccianos
El enunciado del segundo problema de este mes de la RSME es el siguiente:
Un número de al menos tres cifras se denomina fibonacciano si sus cifras, a partir de la tercera, son iguales a la suma de las dos cifras anteriores. Por ejemplo, 5279 es un número fibonacciano, pues su tercera cifra, 7, es suma de las dos anteriores (5+2) y su cuarta cifra, 9, también (2+7).
Te daremos el problema por válido si respondes bien a estas dos cuestiones: a) ¿cuántas cifras como máximo puede tener un número fibonacciano? b) ¿cuántos números fibonaccianos hay?
En la definición de fibonacciano la suma de las cifras tiene que menor que 10, pero podemos generalizarlo sustituyendo 10 por número n. Dichos números de llaman fibonaccianos generalizados acotados por n. Por ejemplo, 571219315081 es un fibonacciano generalizado acotado por 100 ya que la sucesión de sus dígitos es 5, 7, 12 (= 5+7), 19 (= 7+12), 31 (= 12+19) 50 (=19+31) y 81 (=31+50).
Definir las funciones
esFibonacciano :: Integer -> Bool fibonaccianos :: [Integer] fibonaccianosG :: Integer -> [Integer]
tales que
- (esFibonacciano n) se verifica si n es un número fibonacciano. Por ejemplo,
esFibonacciano 5279 == True
esFibonacciano 527916 == False
- fibonaccianos es la lista de los números fibonaccianos. Por ejemplo,
λ> take 60 fibonaccianos
[101,112,123,134,145,156,167,178,189,202,213,224,235,246,257,268,
279,303,314,325,336,347,358,369,404,415,426,437,448,459,505,516,
527,538,549,606,617,628,639,707,718,729,808,819,909,1011,1123,
1235,1347,1459,2022,2134,2246,2358,3033,3145,3257,3369,4044,4156]
- (fibonaccianosG n) es la lista de los números fibonaccianos generalizados acotados por n. Por ejemplo,
λ> take 60 (fibonaccianosG 100) [101,112,123,134,145,156,167,178,189,202,213,224,235,246,257,268, 279,303,314,325,336,347,358,369,404,415,426,437,448,459,505,516, 527,538,549,606,617,628,639,707,718,729,808,819,909,1011,1123, 1235,1347,1459,1910,2022,2134,2246,2358,2810,2911,3033,3145,3257] λ> take 12 (drop 60 (fibonaccianosG 10)) [4268,5055,5167,5279,6066,6178,7077,7189,8088,9099,10112,11235] λ> take 12 (drop 60 (fibonaccianosG 100)) [3369,3710,3811,3912,4044,4156,4268,4610,4711,4812,4913,5055] λ> length (fibonaccianosG (10^40)) 16888 λ> length (show (last (fibonaccianosG (10^40)))) 3943
Usando las funciones anteriores, calcular cuántas cifras como máximo puede tener un número fibonacciano y cuántos números fibonaccianos hay.








y graficaConvergencia ([1..148] \ [63,81,89,137]) dibuja