head

‎"oɯsıɯ ol ǝɹdɯǝıs sɐƃɐɥ ou ,soʇuıʇsıp sopɐʇlnsǝɹ sɐɔsnq ıS"

Sucesión de Fibonacci en R

La sucesión de Fibonacci se puede obtener en R escribiendo una función que contenga unas pocas líneas de código, en esta ocasión se presenta una alternativa para obtener los primeros n valores de tal sucesión.

# Función: fibonnaci

# fibonnaci es una función de un sólo argumento que toma como input un
# número natural positivo y devuelve la cantidad de números de la sucesión
# de Fibonacci.

fibonacci <- function(n) {
    if (n < 1) {
        stop("Proporcione valores enteros positivos para 'n'")
    }

    if (n < 3) {
        return(c(0, 1)[1:n])
    } else {

        fibonacciSeq <- numeric(n)
        fibonacciSeq[2] <- 1
        for (i in 3:n) {
            fibonacciSeq[i] <- fibonacciSeq[i - 2] + fibonacciSeq[i - 1]
        }
        return(fibonacciSeq)
    }
}
fibonacci(0)  # no hay valor para devolver
## Error: Proporcione valores enteros positivos para 'n'
fibonacci(1)  # devuelve el primer número de la secuencia de Fibonacci
## [1] 0
fibonacci(2)  # devuelve los dos primeros valores
## [1] 0 1
fibonacci(10)  # devuelve los 10 primeros valores de Fibonacci.
##  [1]  0  1  1  2  3  5  8 13 21 34

Otra forma 'naive' de hacerlo es usando la función de control condicional while

Fibonacci <- function(N) {
    n <- 1
    N <- as.integer(N)
    if (N < 1) {
        stop("Proporcione valores enteros positivos para 'n'")
    }

    f1 <- -1
    f2 <- 1
    while (n <= N) {
        fn <- f1 + f2
        n <- n + 1
        print(fn)
        f1 <- f2
        f2 <- fn
    }
}
Fibonacci(5)  # devuelve los primeros 5 números de la sucesión.
## [1] 0
## [1] 1
## [1] 1
## [1] 2
## [1] 3

No hay comentarios:

Publicar un comentario