recursive method not reaching base case
Robert Kern
rkern at ucsd.edu
Wed Mar 23 21:20:39 EST 2005
possibilitybox wrote:
> i was working on implementing the original supermemo algorithm (see
> http://www.supermemo.com/english/ol/sm2.htm for a description of it) in
> a class, and i'd just finished up the first draft. it works for
> repetitions one and two, but on repetition three (you must manually
> increment item.reps.) or higher it recurses until it reaches the limit.
> can someone point out what i'm doing wrong here?
>
> here's the code:
> class item:
> def __init__(self, key, value):
> self.key = key
> self.value = value
> self.reps = 1
> self.ef = 2.5
> def interval(self):
> if(self.reps==1):
> return 2
> if(self.reps==2):
> return 6
> return (self.interval() - 1) * self.ef
You're not changing self.reps at all, so interval() keeps getting called
over and over again with self.reps == 3.
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Python-list
mailing list