Как я могу вычислить факторы ряда Фибоначчи в R - PullRequest
0 голосов
/ 04 мая 2019

Я хочу вычислить частные ряда Фибоначчи, такие что:

enter image description here

Я создал функцию для вычисления ряда Фбоначчи, и все в порядке, но у меня проблемы с вычислением коэффициентов. Это моя функция:

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])
}

Это не работает должным образом, оно возвращает действительно маленькие числа, и я не получаю те же результаты, которые отображаются в таблице выше. Может кто-нибудь объяснить мне, что я делаю неправильно и как это исправить, пожалуйста?

Большое спасибо заранее

1 Ответ

1 голос
/ 04 мая 2019

В настоящее время вы делите все числа на 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? потому что это 9-е число в последовательности fibonacci(10) (то есть 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
...