A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
39
Task/Fibonacci-sequence/R/fibonacci-sequence.r
Normal file
39
Task/Fibonacci-sequence/R/fibonacci-sequence.r
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# recursive
|
||||
recfibo <- function(n) {
|
||||
if ( n < 2 ) n
|
||||
else Recall(n-1) + Recall(n-2)
|
||||
}
|
||||
|
||||
# print the first 21 elements
|
||||
print.table(lapply(0:20, recfibo))
|
||||
|
||||
# iterative
|
||||
iterfibo <- function(n) {
|
||||
if ( n < 2 )
|
||||
n
|
||||
else {
|
||||
f <- c(0, 1)
|
||||
for (i in 2:n) {
|
||||
t <- f[2]
|
||||
f[2] <- sum(f)
|
||||
f[1] <- t
|
||||
}
|
||||
f[2]
|
||||
}
|
||||
}
|
||||
|
||||
print.table(lapply(0:20, iterfibo))
|
||||
|
||||
# iterative but looping replaced by map-reduce'ing
|
||||
funcfibo <- function(n) {
|
||||
if (n < 2)
|
||||
n
|
||||
else {
|
||||
generator <- function(f, ...) {
|
||||
c(f[2], sum(f))
|
||||
}
|
||||
Reduce(generator, 2:n, c(0,1))[2]
|
||||
}
|
||||
}
|
||||
|
||||
print.table(lapply(0:20, funcfibo))
|
||||
Loading…
Add table
Add a link
Reference in a new issue