recursive method not reaching base case

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • possibilitybox

    #1

    recursive method not reaching base case

    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

  • Robert Kern

    #2
    Re: recursive method not reaching base case

    possibilitybox wrote:[color=blue]
    > 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[/color]

    You're not changing self.reps at all, so interval() keeps getting called
    over and over again with self.reps == 3.

    --
    Robert Kern
    rkern@ucsd.edu

    "In the fields of hell where the grass grows high
    Are the graves of dreams allowed to die."
    -- Richard Harter

    Comment

    • possibilitybox

      #3
      Re: recursive method not reaching base case

      so obvious! thank you for helping me there. i knew it was simple, i
      just couldn't catch it.

      Comment

      Working...