Resolver un problema de programación en Python
La secuencia de Fibonacci comienza con el tercer número, y cada número es la suma de los dos números anteriores.
Existen al menos dos formas de conseguirlo.
El método más común para usar la iteración, la idea central es
fib(n) =?fib(n-1) +?fib(n-2)
Cuando n<2, no hay n-2, por lo que se devuelve 1 directamente:
def fib(num): devuelve 1 si n<2 else fib(num-1) + fib( num-2)
Esta es una implementación muy simple. Funciona bien cuando el número de pasos no es grande. Cuando el número de pasos es grande, será más lento debido a la iteración de segunda mano. Por lo tanto, el valor intermedio (número de pasos de 1 a n-1) se puede guardar en el cálculo para reducir la cantidad de cálculo:
Este método puede mantener un buen rendimiento al calcular el número de pasos 10.000. Si necesita calcular la secuencia varias veces, puede usar un objeto para mantener esta lista de valores intermedios. En el siguiente código, la instancia de Fibonaci solo calcula el número de pasos que no se han calculado, lo que tiene más ventajas cuando se llama repetidamente:
clase Fibonaci(objeto):
....history=[1, 1]
....def cacl(self, num):
.......mientras len(self.history) <= num:
............self.history.append (self.history[-1] + self.history[-2])
.....return?self.history[num]
if __name__ == '__main__ ':
....fib =?Fibonaci()
....print(fib.calc(100))
.... imprimir(fib.calc (32))
....imprimir(fib.calc(10000))