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