sorry memoize is http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496879 memoize2 is http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/466320
> im plugging away at the problems at > http://www.mathschallenge.net/index.php?section=project > im trying to use them as a motivator to get into advanced topics in > python. > one thing that Structure And Interpretation Of Computer Programs > teaches is that memoisation is good. > all of the memoize decorators at the python cookbook seem to make my > code slower. > is using a decorator a lazy and inefficient way of doing memoization? > can anyone point me to where would explain how to do it quickly. or is > my function at fault? > > the code in question is as follows > """ > from memoize import memoize,memoize2 > > @memoize > def col(n, count): > if n == 1: > return count > elif n % 2 == 0: > return col(n/2, count+1) > else: > return col((3*n+1)/2, count+2) > > import psyco > psyco.full() > > start = time() > maxlength = 0 > best = 0 > for i in range(1, 1000001): > length = col(i,1) > if length > maxlength: > maxlength = length > best = i > print maxlength, best > end = time() > print 'took', end-start -- http://mail.python.org/mailman/listinfo/python-list