MathGroup Archive 2005

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

Search the Archive

Re: Finding length in recursive definition?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg60905] Re: Finding length in recursive definition?
  • From: Peter Pein <petsie at dordos.net>
  • Date: Mon, 3 Oct 2005 04:06:04 -0400 (EDT)
  • References: <dhlcj2$d16$1@smc.vnet.net> <dhntbj$1j9$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Scout schrieb:
> Hi Jose,
> If I've well understood your question
> about how many values of a recursive function f[] are stored in memory,
> you can try this:
> 
>     Length[DownValues[f]] - 1
> 
> where -1 counts the definition of f[] itself.
> 
>     ~Scout~
> 
> "Jose Reckoner"
> 
>>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?
>>
>>Thanks!
>>
>>Jose
>>
> 
> 

Hi ~Scout~,

what would you do for this function:

In[1]:=
Clear[f];
f[1]=1; f[2]=1;
f[n_Integer?EvenQ]:=f[n]=1+f[n/2];
f[n_]:=f[n]=f[n-1]-1;

In[5]:= f[17]
Out[5]= 3

In[6]:= Definition[f]//InputForm
Out[6]//InputForm=
f[1] = 1
f[2] = 1
f[4] = 2
f[8] = 3
f[16] = 4
f[17] = 3
f[(n_Integer)?EvenQ] := f[n] = 1 + f[n/2]
f[n_] := f[n] = f[n - 1] - 1

?

Peter


  • Prev by Date: Re: How to "search" in a matrix?
  • Next by Date: Help with output form?
  • Previous by thread: Re: Finding length in recursive definition?
  • Next by thread: Re: Finding length in recursive definition?