RでFibonacci数を計算
参考プログラム: fibonaccies.zip(UFT-8/LF)
Fibonacci数列 $f_n$ \begin{align*} f_0 &=0,\\ f_1 &=1,\\ f_n&= f_{n-1} + f_{n-2},\quad n\geq 2 \end{align*} を計算するRのプログラムを考えてみる。繰り返しによって$f_n$を求める
fibonacci <- function(n){
if (n == 0)
return(0)
else if (n == 1)
return(1)
else {
f0 = 0
f1 = 1
for(i in 2:n){
f = f0 + f1
f0 = f1
f1 = f
}
return(f)
}
}
再帰的に$f_n$を求める
fibonacci <- function(n){
if (n == 0)
return(0)
else if (n == 1)
return(1)
else
return(fibonacci(n-1) + fibonacci(n-2))
}
Fibonacci数列をベクトルで返す
# n番目までのFibonacci数をベクトルで返す
fibonacci_vector <- function(n) {
if(n == 0)
return(c(0))
else if(n==1)
return(c(0, 1))
else {
fl <- c(0, 1)
for(i in 3:(n + 1)) {
f <- fl[i - 1] + fl[i - 2]
#fl <- append(fl, f)
fl <- c(fl, f)
}
return(fl)
}
}
Fibonacci数列をリストで返す
# n番目までのFibonacci数をリストで返す
fibonacci_list <- function(n) {
if(n == 0)
return(list(0))
else if(n == 1)
return(list(0, 1))
else {
fl <- list(0, 1)
for(i in 2:n) {
f <- fl[[i-1]] + fl[[i]]
fl <- append(fl, f)
#fl <- list(fl, list(f))
}
return(fl)
}
}