Funciones recursivas en la programación R

La recursión, en los términos más simples, es un tipo de técnica de bucle. Explota el funcionamiento básico de las funciones en R . La recursividad es cuando la función se llama a sí misma. Esto forma un bucle, donde cada vez que se llama a la función, se llama a sí misma una y otra vez y esta técnica se conoce como recursividad. Dado que los bucles aumentan la memoria, usamos la recursividad. La función recursiva usa el concepto de recursividad para realizar tareas iterativas que ellos mismos llaman, una y otra vez, que actúa como un bucle. Este tipo de funciones necesitan una condición de parada para que puedan dejar de repetirse continuamente.

Las funciones recursivas se llaman a sí mismas. Dividen el problema en componentes más pequeños. La función() se llama a sí misma dentro de la función() original en cada uno de los componentes más pequeños. Después de esto, los resultados se unirán para resolver el problema original.

Ejemplo: Factorial usando Recursión en R

rec_fac <- function(x){
    if(x==0 || x==1)
    {
        return(1)
    }   
    else
    {
        return(x*rec_fac(x-1))
    }
}

Producción:

[1] 120

Aquí, rec_fac(5) llama a rec_fac(4), que luego llama a rec_fac(3), y así sucesivamente hasta que el argumento de entrada x llega a 1. La función devuelve 1 y se destruye. El valor de retorno se multiplica con el valor del argumento y se devuelve. Este proceso continúa hasta que la primera llamada a la función devuelve su salida, dándonos el resultado final.

Ejemplo: Suma de series usando recursividad
La recursividad en R es más útil para encontrar la suma de series que se repiten a sí mismas. En este ejemplo, encontraremos la suma de los cuadrados de una serie dada de números.

Suma = 1 2 +2 2 +…+N 2

Ejemplo:

sum_series <- function(vec){
    if(length(vec)<=1)
    {
        return(vec^2)
    }
    else
    {
        return(vec[1]^2+sum_series(vec[-1]))
    }
}
series <- c(1:10)
sum_series(series)

Producción:

[1] 385

Características clave de la recursión R

  • El uso de la recursividad, a menudo, hace que el código sea más corto y también se vea limpio.
  • Es una solución sencilla para unos pocos casos.
  • Se expresa en una función que se llama a sí misma.

Aplicaciones de Recursión en R

  • Las funciones recursivas se utilizan en muchas técnicas de programación eficientes, como el lenguaje de programación dinámico (DSL) o los algoritmos de divide y vencerás.
  • En la programación dinámica, tanto para los enfoques de arriba hacia abajo como de abajo hacia arriba, la recursividad es vital para el rendimiento.
  • En los algoritmos de divide y vencerás, dividimos un problema en subproblemas más pequeños que son más fáciles de resolver. Luego, la salida se vuelve a construir hasta la parte superior. La recursividad tiene un proceso similar, por lo que se utiliza para implementar este tipo de algoritmos.
  • En esencia, la recursividad es el proceso de descomponer un problema en muchos problemas más pequeños, estos problemas más pequeños se descomponen aún más hasta que el problema que queda es trivial. Luego, la solución se vuelve a construir pieza por pieza.

Publicación traducida automáticamente

Artículo escrito por pvsai609 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *