Re: The most efficient Fibonacci algorithim?
- To: mathgroup at smc.vnet.net
- Subject: [mg23383] Re: [mg23357] The most efficient Fibonacci algorithim?
- From: Jack Goldberg <jackgold at math.lsa.umich.edu>
- Date: Fri, 5 May 2000 02:07:16 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
FYI, Roman Maeder's new book on Mathematica and Computer Programming discusses this problam in a bit more detail than the book you quoted. It appears that Maeder's method is faster than the built-in one. I too was started by this... Unfortunately, the method as it stands takes advantage of special features or the companion matrix to the difference equation f[n+1] = f[n]+f[n-1] {{1,1},{1,0}] namely, its symmetry. Generally companion matrices are not symmetric so the technique does not generalize in any obvious way. On Thu, 4 May 2000 zeno at magicnet.net wrote: > On page 128 of the book "The Mathematica Programmer" by Roman Maeder (the > Mathematic 2.2 edition) is this Mathematica program to compute Fibonacci > numbers... > > fibj[n_]:= > Module[{r11=1,r12=0,r22=1,digits=IntegerDigits[n-1,2],i,t}, > Do[If[digits[[i]]==1, > {r11,r22}={r11(r11+2r12),r12(r11+r22)}; > r12=r11-r22, > t=r12(r11+r22); > {r11,r12}={r11(r11+2r12)-t,t}; > r22=r11-r12], > {i,Length[digits]-1}]; > If[digits[[-1]]==1, > r11(r11+2r12), > r11(r11+r22)-(-1)^((n-1)/2)]] > > The book says this is the most efficient one of a few mentioned in the book. > Does anyone know of any other programs that are faster? This one really > screams...I am curious if anyone has done anything even better. >