Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算R中斐波那契级数的商_R_For Loop_Math_Fibonacci - Fatal编程技术网

如何计算R中斐波那契级数的商

如何计算R中斐波那契级数的商,r,for-loop,math,fibonacci,R,For Loop,Math,Fibonacci,我想计算斐波那契级数的商,这样: 我已经创建了一个函数来计算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

我想计算斐波那契级数的商,这样:

我已经创建了一个函数来计算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目前,您正在将所有数字除以
n-1
th数字。你的功能是给你价值观

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
th个数)

您需要将函数更改为

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

该死,我被困在里面了。基本上,从数字向量中去掉第一个元素。但是后来,
numbers[-length(numbers)
在做什么呢?@Miguel2488它从数字向量中删除了最后一个数字。所以基本上,第二个数字除以第一个,第三个除以第二个,第n个除以第n-1个。啊,这相当于
numbers[i-1]
?没有。请检查
a非常感谢您的帮助!!我现在很明白了
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