[Newbies] Re: Beginners Digest, Vol 18, Issue 2

Gregory Hinton gregory.hinton at gmail.com
Thu Oct 4 04:41:40 UTC 2007


On Oct 3, 2007, at 7:31 AM, Michael Davies wrote:

> If you're
> interested in the numbers rather than the technique, there's a couple
> of alternative approaches to speed it up, iteration and matrix
> manipulation.

Actually, in the case of the Fibonacci sequence, the best way to  
speed it up is to use the closed-form formula:

nthFibonacci
	|phi1 phi2 term1 term2|
	phi1 := (1 + 5 sqrt) / 2.
	phi2 := (1 - 5 sqrt) / 2.
	term1 := phi1 raisedTo: self.
	term2 := phi2 raisedTo: self.
	^((term1 - term2) / (5 sqrt)) rounded.
	
Sorry, I realize the OP requested a recursive solution, but I  
couldn't resist. :)




More information about the Beginners mailing list