我如何计算 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