Escriba un código que tome un número entero no negativo n y genere la enésima potencia de Phi (ϕ, la proporción áurea, aproximadamente 1.61803398874989) con el mismo número de dígitos decimales que el enésimo número de Fibonacci.
Su código debe producir la secuencia correcta de dígitos para todas las entradas de hasta al menos 10 (55 dígitos decimales). La salida debe ser decimal legible por humanos. Puede elegir redondear el último dígito al valor más cercano o truncar el valor. Por favor, especifique cuál usa su código.
n y salida, hasta 10, redondeando hacia abajo:
0 1
1 1.6
2 2.6
3 4.23
4 6.854
5 11.09016
6 17.94427190
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
n y salida, hasta 10, redondeando al valor más cercano:
0 1
1 1.6
2 2.6
3 4.24
4 6.854
5 11.09017
6 17.94427191
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
El séptimo número de Fibonacci es 13, por lo que la salida para n = 7, ϕ 7 , tiene 13 decimales. No debe truncar los ceros finales que mostrarían muy pocos dígitos; vea la salida para 6 en la primera tabla, que termina en un solo cero para mantener la precisión decimal en 8 dígitos.
Tal vez como un bono, diga cuál es el número más alto que su programa puede generar correctamente.
Respuestas:
cc, 26 bytes
Debido a la precisión inicial de 99 dígitos después de la coma, esto funcionará con la entrada 11 . Es posible una precisión dinámica (o estática más alta), pero elevaría el recuento de bytes.
Casos de prueba
Cómo funciona
Como la salida deseada es φ n , podemos calcular el número de Fibonacci F (n) como ⌊φ n ÷ √5 + 0.5⌋ con poco esfuerzo adicional.
fuente
Mathematica, 50 bytes
Solución básica Redondea al valor más cercano.
Todavía verifico el valor más alto que no hará que mi computadora se quede sin memoria.La entrada32
funciona, pero tarda 45 minutos y usa 16GiB de RAM. Sin embargo, dado el tiempo y la memoria infinitos, en teoría esto podría funcionar para cualquier valor.fuente