Aquí hay una función de Python que calculará cualquier número de Fibonacci:
de importación matemática *
def fibo (k):
return pow (2,1-k) * ((sqrt (5) -3) * pow ((1-sqrt (5)), k-2) + (3 + sqrt (5)) * pow ((1+ sqrt (5)), k-2)) / sqrt (5)
La función es muy eficiente en la medida en que no requiere ningún tipo de bucle. Además, con algunas modificaciones menores, puede calcular el resultado para números reales y complejos, y no solo enteros.
- ¿Cuál es la diferencia entre matriz y estructura en la programación?
- Cómo mejorar la lógica o la presentación de la conjetura descrita en una respuesta para que más personas puedan entender lo que creo que es un método sorprendente para crear algorítmicamente un conjunto primo potencialmente infinito
- En algoritmos, ¿cuál es el límite superior e inferior?
- ¿Cuál es el peor caso, el caso promedio y la mejor complejidad de tiempo de un algoritmo?
- ¿Cómo se utilizan las estructuras de datos en las industrias?
Para probarlo y ejecutarlo, use lo siguiente (lo hice en mi Mac en un terminal shell):
$ python -i fibo.py
>>> n = 40
>>> fibo (2 * n)
2.3416728348467748e + 16
Compare esto con Wolfram Alpha, que da el resultado
Cerrar, pero no exactamente lo mismo (probablemente debido a errores de coma flotante).