task(style): improves styling and renames functions

master
nicolas 3 years ago
parent 18e9f7ba41
commit 966422abc2

@ -1,41 +1,43 @@
import functools, timeit import functools
import timeit
def fibo_rec(num):
def fibonacci_recursive(num):
if num == 0: if num == 0:
return 0 return 0
elif num == 1: elif num == 1:
return 1 return 1
else: else:
return fibo_rec(num - 1) + fibo_rec(num - 2) return fibonacci_recursive(num - 1) + fibonacci_recursive(num - 2)
def fibonacci_dp(num, table): def fibonacci_dynamic_programming_aux(num, table):
if table[num] >= 0: if table[num] >= 0:
return table[num] return table[num]
if (num == 0 or num == 1): if num == 0 or num == 1:
res = num res = num
else: else:
res = fibonacci_dp(num - 1, table) + fibonacci_dp(num - 2, table) res = fibonacci_dynamic_programming_aux(num - 1, table) + fibonacci_dynamic_programming_aux(num - 2, table)
table[num] = res table[num] = res
return res return res
def fibo_dp(num): def fibonacci_dynamic_programming(num):
table = [-1] * (num + 1) table = [-1] * (num + 1)
return fibonacci_dp(num, table) return fibonacci_dynamic_programming_aux(num, table)
number = int(input('Enter a number: ')) number = int(input('Enter a number: '))
recursive_timer = timeit.Timer(functools.partial(fibo_rec, number)) recursive_timer = timeit.Timer(functools.partial(fibonacci_recursive, number))
recursive_time = recursive_timer.timeit(1) recursive_time = recursive_timer.timeit(1)
print(f'Calculating Fibonacci of {number} recursively took {recursive_time} seconds.') print(f'Calculating Fibonacci of {number} recursively took {recursive_time} seconds.')
dp_timer = timeit.Timer(functools.partial(fibo_dp, number)) dp_timer = timeit.Timer(functools.partial(fibonacci_dynamic_programming, number))
dp_time = dp_timer.timeit(1) dp_time = dp_timer.timeit(1)
print(f'Calculating Fibonacci of {number} with dynamic programming took {dp_time} seconds.') print(f'Calculating Fibonacci of {number} with dynamic programming took {dp_time} seconds.')

Loading…
Cancel
Save