我如何计算 R 中斐波那契数列的商
How can i calculate the quotients of a Fibonacci series in R
我想计算斐波那契数列的商,这样:
我创建了一个函数来计算 Fbonacci 系列,没问题,但我在计算商数时遇到了问题。这是我的功能:
fibonacci <- function(n){
numbers <- numeric(n)
numbers[1] <- 1
numbers[2] <- 1
for (i in 3:n)
numbers[i] <- numbers[i-1]+numbers[i-2]
return(numbers)
}
这将计算斐波那契数列。这就是我试图计算商数的方法:
fibonacci_q <- function(n){
numbers <- numeric(n)
numbers[1] <- 1
numbers[2] <- 1
for (i in 3:n)
numbers[i] <- numbers[i-1]+numbers[i-2]
return(numbers/numbers[i-1])
}
这不能正常工作,它 returns 非常小的数字,而且我没有得到上面 table 中显示的相同结果。有人可以向我解释我做错了什么以及如何解决吗?
非常感谢您
目前,您正在将所有数字除以第 n-1
个数字。您的函数正在为您提供值
fibonacci_q(10)
#[1] 0.0294 0.0294 0.0588 0.0882 0.1471 0.2353 0.3824 0.6176 1.0000 1.6176
等于
fibonacci(10)/34
#[1] 0.0294 0.0294 0.0588 0.0882 0.1471 0.2353 0.3824 0.6176 1.0000 1.6176
为什么是 34?因为它是 fibonacci(10)
序列中的第 9 个数字(即第 n-1
个数字)。
您需要将功能更改为
fibonacci_q <- function(n){
numbers <- numeric(n)
numbers[1] <- 1
numbers[2] <- 1
for (i in 3:n)
numbers[i] <- numbers[i-1]+numbers[i-2]
return(c(NA, numbers[-1]/numbers[-length(numbers)]))
}
fibonacci_q(10)
# [1] NA 1.00 2.00 1.50 1.67 1.60 1.62 1.62 1.62 1.62
现在等于
c(NA, fibonacci(10)[-1]/fibonacci(10)[-10])
#[1] NA 1.00 2.00 1.50 1.67 1.60 1.62 1.62 1.62 1.62
我想计算斐波那契数列的商,这样:
我创建了一个函数来计算 Fbonacci 系列,没问题,但我在计算商数时遇到了问题。这是我的功能:
fibonacci <- function(n){
numbers <- numeric(n)
numbers[1] <- 1
numbers[2] <- 1
for (i in 3:n)
numbers[i] <- numbers[i-1]+numbers[i-2]
return(numbers)
}
这将计算斐波那契数列。这就是我试图计算商数的方法:
fibonacci_q <- function(n){
numbers <- numeric(n)
numbers[1] <- 1
numbers[2] <- 1
for (i in 3:n)
numbers[i] <- numbers[i-1]+numbers[i-2]
return(numbers/numbers[i-1])
}
这不能正常工作,它 returns 非常小的数字,而且我没有得到上面 table 中显示的相同结果。有人可以向我解释我做错了什么以及如何解决吗?
非常感谢您
目前,您正在将所有数字除以第 n-1
个数字。您的函数正在为您提供值
fibonacci_q(10)
#[1] 0.0294 0.0294 0.0588 0.0882 0.1471 0.2353 0.3824 0.6176 1.0000 1.6176
等于
fibonacci(10)/34
#[1] 0.0294 0.0294 0.0588 0.0882 0.1471 0.2353 0.3824 0.6176 1.0000 1.6176
为什么是 34?因为它是 fibonacci(10)
序列中的第 9 个数字(即第 n-1
个数字)。
您需要将功能更改为
fibonacci_q <- function(n){
numbers <- numeric(n)
numbers[1] <- 1
numbers[2] <- 1
for (i in 3:n)
numbers[i] <- numbers[i-1]+numbers[i-2]
return(c(NA, numbers[-1]/numbers[-length(numbers)]))
}
fibonacci_q(10)
# [1] NA 1.00 2.00 1.50 1.67 1.60 1.62 1.62 1.62 1.62
现在等于
c(NA, fibonacci(10)[-1]/fibonacci(10)[-10])
#[1] NA 1.00 2.00 1.50 1.67 1.60 1.62 1.62 1.62 1.62