Advertisement
patrickd314

Fibonacci Time Comparison

May 15th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.04 KB | None | 0 0
  1. #  https://www.geeksforgeeks.org/timeit-python-examples/
  2. # compute dict_version time
  3. def dict_version(n):    
  4.    
  5.     SETUP_CODE = '''
  6. n = {}
  7. '''.format(n)
  8.  
  9.     TEST_CODE = '''
  10. def fibonacci(n):
  11.    base = {0: 0, 1: 1}
  12.    for i in range(2, n + 1):
  13.        base[i] = base[i-2] + base[i-1]
  14.    return base[n]
  15. fibonacci(n)
  16. '''
  17.      
  18.     # timeit.timeit statement
  19.     times = timeit.timeit(setup = SETUP_CODE,
  20.                           stmt = TEST_CODE,                          
  21.                           number = 1000)
  22.  
  23.     # printing minimum exec. time
  24.     print("dict time for n = {} is {:.3f} (1000 runs)".format(n, times))
  25.     return times
  26.            
  27.  
  28.  
  29. # compute tuple_version time
  30. def tuple_version(n):
  31.     SETUP_CODE = '''
  32. n = {}
  33.  
  34. '''.format(n)
  35.  
  36.     TEST_CODE = '''
  37. def fib(n):
  38.    a, b = 0, 1
  39.    while n > 0:
  40.        a, b = b, b + a
  41.        n -= 1
  42.    return a
  43. fib(n)
  44. '''
  45.     # timeit.timeit statement
  46.     times = timeit.timeit(setup = SETUP_CODE,
  47.                           stmt = TEST_CODE,                          
  48.                           number = 1000)
  49.  
  50.     # printing minimum exec. time
  51.     print("tuple time for n = {} is {:.3f} (1000 runs)".format(n, times))
  52.     return times
  53.        
  54.  
  55. if __name__ == "__main__":
  56.     import timeit
  57.     comp_dict = {}
  58.     inputs = [50, 100, 200, 400, 800, 1600]#, 3200, 6400]
  59.     for i in inputs:
  60.         comp_dict[i] = [0,0]
  61.     for i in [50, 100, 200, 400, 800, 1600]:#, 3200, 6400]:
  62.         comp_dict[i][0] = dict_version(i)        
  63.         comp_dict[i][1] = tuple_version(i)
  64.         print("*************")
  65.     print(comp_dict)
  66.     print()
  67.     print("        Comparison of time (in seconds) taken\n        for each of two methods of computing fib(n),\n        1000 runs at each n.")
  68.     print("         {:10} {:10}       {:10}".format("n", "dict time", "tuple time"))
  69.     print("          ****************************")
  70.     for i in comp_dict:
  71.         print("{:10}      {:10.4f}       {:10.4f}".format(i, comp_dict[i][0], comp_dict[i][1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement