-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
project.org] On Behalf Of David Winsemius
Sent: Thursday, April 21, 2011 8:44 AM
To: Michael Dewey
Cc: r-help at r-project.org
Subject: Re: [R] Fibonacci
On Apr 21, 2011, at 9:04 AM, Michael Dewey wrote:
At 10:42 20/04/2011, Georgina Imberger wrote:
Hi!
I am trying to work out the code to get a Fibonacci sequence, using
the
while() loop and only one variable. And I can't figure it out.
phi <- 0.5 * (1 + sqrt(5))
phi
fib <- function(n) {(phi ^ n - (1 - phi) ^ n) / sqrt(5)}
fib(1:10)
[1] 1 1 2 3 5 8 13 21 34 55
Admittedly this does not use a while loop as you requested
> test <-c( 1, 1, 2, 3, 5, 8, 13, 21, 34, 55)
> test == fib(1:10)
[1] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
To avoid such FAQ-tual puzzlement, it might be better to round to zero
digits:
fib2 <- function(n) {round( (phi ^ n - (1 - phi) ^ n) / sqrt(5) ) }
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
There are several packages that offer fib() functions of one name or
another, including the gmp package which always seems to "think
bigger" than I do. I cannot (trivially) see how that author does it
with fibnum(), because it is in a .Call()
--
David
Fibonacci<-c(1,1)
while (max(Fibonacci)<500){
Fibonacci<-c(Fibonacci, (max(Fibonacci) + ?(Fibanacci)))
}
How can I tell R to take the value one before the max value?
defining another variable)
(Probably super easy... I am a beginner...)
Thanks,
Georgie
[[alternative HTML version deleted]]