# Fibonacci sequence calculations # n: 0 1 2 3 4 5 6 7 8 9 # fib(n): 0 1 1 2 3 5 8 13 21 34 # A non-recursive function for calculating the nth Fibonacci number: def fib(n): if n < 2: return n prev = 0 curr = 1 for i in range(2,n+1): new_curr = prev + curr prev = curr curr = new_curr return curr # Calculating the ratios of pairs of Fibonacci numbers -- like fib(6)/fib(5) def CalcFibRatios(low,high): for i in range(low,high+1): print(fib(i)/fib(i-1)) # The recursive function for Fibonacci def fib_r(n): if n < 2: return n return fib_r(n-1) + fib_r(n-2) # Timing how long it takes to calculate fib_r(n) def timeit(n): import time start = time.time() fib_r(n) end = time.time() return end - start