Código Python:
Ver originaldef fib(n):
"Complexity: O(k^n), k = golden ratio"
if n < 2:
return n
else:
return fib(n - 1) + fib(n - 2)
Código Python:
Ver originaldef fib(n):
"Complexity: O(n)"
i = 1
j = 0
for c in xrange(1, n + 1):
t = i + j
i = j
j = t
return j
Código Python:
Ver originaldef fib(n):
"Complexity: O(log(n))"
if n <= 0:
return 0
i = n - 1
(a, b) = (1, 0)
(c, d) = (0, 1)
while i > 0:
if i % 2:
(a, b) = (d * b + c * a, d * (b + a) + c * b)
(c, d) = (c * c + d * d, d * (2 * c + d))
i = i / 2
return a + b
Código Python:
Ver originaldef fib():
i = 1
j = 0
yield j
while True:
t = i + j
i = j
j = t
yield j
for i in fib():
print i
if i > 100: break
Generador para recorrer los números de fibonacci.
Un pequeño aporte para obtener la serie de fibonacci.
Ademas existe una formula para obtener el fibonacci en la posicion N, pero tiende a fallar para numeros grandes, debido a que maneja numeros irracionales.