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.
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? (Without
defining another variable)
(Probably super easy... I am a beginner...)
Thanks,
Georgie
[[alternative HTML version deleted]]
The "easy" solution to compute the Fibonacci numbers is
fibo <- function(n,a=1,b=1){
if (n == 1) return(a)
if (n == 2) return(b)
return(fibo(n-1,b,a+b))
}
It avoids double recursion.
It is, however, not as resource efficient as a loop since R does not do
tail recursion elimination.
On Apr 20, 2011, at 11:42 AM, 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.
>
> 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? (Without
> defining another variable)
>
> (Probably super easy... I am a beginner...)
>
> Thanks,
> Georgie
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
On Wed, Apr 20, 2011 at 11:42:38AM +0200, 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. > > 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? (Without > defining another variable)Is it allowed to use length() function? If so, then try the following Fibonacci<-c(1,1) while (max(Fibonacci)<500){ Fibonacci<-c(Fibonacci, Fibonacci[length(Fibonacci) - 1] + Fibonacci[length(Fibonacci)]) } Petr Savicky.
Fibonacci <- c(1, 1)
while (max (Fibonacci) < 500){
Fibonacci <- c(Fibonacci, sum(tail(Fibonacci, 2))) }
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Georgina Imberger
Sent: Wednesday, April 20, 2011 5:43 AM
To: r-help at r-project.org
Subject: [R] Fibonacci
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.
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? (Without
defining another variable)
(Probably super easy... I am a beginner...)
Thanks,
Georgie
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
==================================
Please consider the environment before printing this e-mail
Cleveland Clinic is ranked one of the top hospitals
in America by U.S.News & World Report (2010).
Visit us online at http://www.clevelandclinic.org for
a complete listing of our services, staff and
locations.
Confidentiality Note: This message is intended for use\...{{dropped:13}}
Another solution: while (Fibonacci[1] < 500) Fibonacci <- c(sum(Fibonacci[c(1,2)]), Fibonacci) While this adds the sum before the existing values, the length or tail function or avoided, but even with reordering, its faster (Fibonacci[length(Fibonacci):1]) Best regards Bart -- View this message in context: http://r.789695.n4.nabble.com/Fibonacci-tp3462636p3463050.html Sent from the R help mailing list archive at Nabble.com.
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 [1] 1.618034 > 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 Courtesy of Wikipedia>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? (Without >defining another variable) > >(Probably super easy... I am a beginner...) > >Thanks, >Georgie > > [[alternative HTML version deleted]]Michael Dewey info at aghmed.fsnet.co.uk http://www.aghmed.fsnet.co.uk/home.html
Reasonably Related Threads
- Simple 95% confidence interval for a median
- MCJIT -- Poor run-time performance for Fibonacci example in LLVM 3.8.1
- can't build/run after adding lib to Fibonacci example, even reverting the complete llvm tree does not help
- can't build/run after adding lib to Fibonacci example, even reverting the complete llvm tree does not help
- [LLVMdev] JIT API example (fibonacci)