MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Finding length in recursive definition?


Jose  Reckoner wrote:

> I have something like:
> f[1] = 1
> f[2] = 3
> f[n_] := f[n] = f[n - 1] + f[n - 2]
> 
> and in the course of work, f[n] gets evaluated an unknown number of
> times resulting in
> 
>>> ?f
> f[1] = 1
> f[2] = 3
> f[3] = 4
> f[n_] := f[n] = f[n - 1] + f[n - 2]
> 
> I want to figure out the greatest integer n such that f[n] has already
> been computed and is stored. In this case, it is 3.
> 
> How can I do this?

I think this will do what you want:

Max[Cases[DownValues[f], HoldPattern[_[_[f[nn_Integer]], _]] :> nn]]

all patterns for f are stored in DownValues[f], the Cases extracts all
patterns where the argument of f is an integer and replaces them by this
integer...

Albert


  • Prev by Date: Re: Rounding?
  • Next by Date: Re: Finding length in recursive definition?
  • Previous by thread: Re: Finding length in recursive definition?
  • Next by thread: Re: Finding length in recursive definition?