Files
project_euler/utils/fact_memoization.py
Julien Lengrand-Lambert 1fdf9883b8 Solve a new problem.
Prepares some others. 

More than 35 problem solved ! 

Signed-off-by: Julien Lengrand-Lambert <julien@lengrand.fr>
2012-02-20 16:17:10 +01:00

43 lines
1008 B
Python

#!/usr/bin/env python
'''
Created on 17 feb. 2012
@author: Julien Lengrand-Lambert
@contact: julien@lengrand.fr
'''
import timeit
from memoize import memoize
from Memoized import Memoized
def fact1(value):
"""
Returns value!
"""
if value == 0:
return 1
return value * fact1(value - 1)
@memoize
def fact2(value):
"""
Returns value!, using memoization
"""
if value == 0:
return 1
return value * fact2(value - 1)
@Memoized
def fact3(value):
"""
Returns value!, using memoization
"""
if value == 0:
return 1
return value * fact3(value - 1)
if __name__ == '__main__':
for i in range(3):
t1 = timeit.Timer("fact1(150)", "from __main__ import fact1")
t2 = timeit.Timer("fact2(150)", "from __main__ import fact2")
t3 = timeit.Timer("fact3(150)", "from __main__ import fact3")
print t1.timeit(1), t2.timeit(1), t3.timeit(1)