0% encontró este documento útil (0 votos)
211 vistas11 páginas

Definición y Aplicaciones de Recursividad

La recursividad es un concepto fundamental en matemáticas y computación. Puede usarse como una técnica de programación donde una subrutina se llama a sí misma de forma directa o indirecta. La recursividad permite definir tareas complejas con pocas líneas de código y es una alternativa a los ciclos iterativos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
211 vistas11 páginas

Definición y Aplicaciones de Recursividad

La recursividad es un concepto fundamental en matemáticas y computación. Puede usarse como una técnica de programación donde una subrutina se llama a sí misma de forma directa o indirecta. La recursividad permite definir tareas complejas con pocas líneas de código y es una alternativa a los ciclos iterativos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

“2020.

Año de Laura Méndez de Cuenca; emblema de la mujer Mexiquense”

TECNOLOGICO DE ESTUDIOS SUPERIORES DE JOCOTITLAN

RECURSIVIDAD
PRESENTACION:
INVESTIGACION

Elaborado por:
ISRAEL MONROY ALVAREZ

MATERIA: ESTRUCTURA DE DATOS


GRUPO: IC-303
DOCENTE: INGENIERO MARCIAL JESUS MARTINEZ BLAS
CARRERA: INGENIERIA EN SISTEMAS COMPUTACIONALES

Jocotitlán, Mexico,28 de septiembre de 2020.


RESUMEN

La recursividad es un concepto fundamental en matemáticas y computación así también la


misma base de estructura de datos esta es una alternativa diferente para implementar
estructuras de repetición los llamados ciclos(for)el objetivo general es hacer entender que los
módulos que se invocan este tema se llaman recursivas y el objetivo específico es dar a entender
que este se puede usar en toda situación en la cual la solución puede ser expresada como una
secuencia de movimientos pasos o transformaciones gobernadas por un conjunto de reglas no
ambiguas.
INTRODUCCION

La recursividad se puede utilizar como técnica de programación. Una subrutina recursiva es


aquella que se llama a sí misma, ya sea directa o indirectamente. Decir que una subrutina se
llama directamente significa que su definición contiene una instrucción de llamada de subrutina
que llama a la subrutina que se está definiendo. Decir que una subrutina se llama
indirectamente significa que llama a una segunda subrutina que a su vez llama a la primera
subrutina (directa o indirectamente). Una subrutina recursiva puede definir una tarea compleja
en solo unas pocas líneas de código. En el resto de esta sección, veremos una variedad de
ejemplos, y veremos otros ejemplos en el resto de la investigacion.
MARCO REFERENCIAL :

COMPETENCIA II
Aplica la recursividad en la solucion de problemas valorando su pertinencia en el uso eficaz de
los recursos.
RECURSIVIDAD

CONCEPTO GENERAL:
Recursión o recursividad es la forma en la cual se especifica un proceso basado en su propia
definición. La recursión tiene esta característica discernible en términos de
autorreferencialidad, autopoiesis, fractalidad, o, en otras palabras, construcción a partir de un
mismo tipo.

CONCEPTO EN PROGRAMACION
La recursividad es una técnica muy empleada en la programación informática y consiste en que
una función se llame a sí misma.

En un momento u otro, probablemente te han dicho que no puedes definir algo en términos de
sí mismo. Sin embargo, si se hace bien, definir algo al menos parcialmente en términos de sí
mismo puede ser una técnica muy poderosa. Una definición recursiva es aquella que utiliza el
concepto o cosa que se está definiendo como parte de la definición. Por ejemplo: un
"antepasado" es un padre o un antepasado de un padre. Una "frase" puede ser, entre otras cosas,
dos frases unidas por una conjunción como "y". Un "directorio" es una parte de una unidad de
disco que puede contener archivos y directorios. En matemáticas, un "set" es una colección de
elementos, que se pueden establecer.

Las definiciones recursivas pueden describir situaciones muy complejas con solo unas pocas
palabras. Una definición del término "antepasado" sin usar recursividad podría ir algo así como
"un padre, o un abuelo, o un bisabuelo, o un tatarabuelo, y así sucesivamente". Pero decir "y así
sucesivamente" no es muy riguroso. (A menudo he pensado que la recursividad es realmente
sólo una forma rigurosa de decir "y así sucesivamente.") Se encuentra con el mismo problema
si intenta definir un "directorio" como "un archivo que es una lista de archivos, donde algunos
de los archivos pueden ser listas de archivos, donde algunos de esos archivos pueden ser listas
de archivos, y así sucesivamente.".
¿Qué es un proceso recursivo?

La recursividad es un método que lo podemos usar ya que se llama a sí mismo. En otras


palabras, la recursividad nos ayuda a que los procesos se repitan así mismos y sea más fácil su
codificación. La recursividad la podemos usar cuando tenemos problemas matemáticos como
la derivada de cualquier función
¿Qué es la recursividad en informática?

La recursividad es una técnica muy empleada en la programación informática y consiste en


que una función se llame a sí misma. El ejemplo clásico es la función que calcula la factorial de
un número.
¿EN QUE CONSISTE LA RECURSIVIDAD?

En el cuerpo de sentencias del subalgoritmo se


invoca al propio subalgoritmo para resolver
“una versión más pequeña” del problema
original.

Habrá un caso (o varios) tan simple que pueda


resolverse directamente sin necesidad de
hacer otra llamada recursiva.

Aspecto de un subalgoritmo recursivo.


ALGORITMO Recursivo(...) INICIO ...
Recursivo(...); ...

Verificación de funciones y procedimientos recursivos:

Método de las tres preguntas


La pregunta Caso-Base:

• ¿Existe una salida no recursiva o caso base del subalgoritmo?


• ¿El subalgoritmo funciona correctamente para ella?

La pregunta Más-pequeño:

• ¿Cada llamada recursiva se refiere a un caso más pequeño del problema original?

La pregunta Caso-General:

• ¿Es correcta la solución en aquellos casos no base?


Escritura de programas recursivos:

Obtención de una definición


exacta del problema.

Determinar el tamaño del problema


completo que hay que resolver
Parámetros en la llamada inicial
.888888888888885
Resolver el(los) casos bases o
triviales (no recursivos).
Resolver el caso general
en términos de un caso
más pequeño. (llamada
recursiva).

Distintos parámetros.

VENTAJAS Y DESVENTAJAS
Ventajas de la Recursión ya conocidas Desventajas de la Recursión:
•Soluciones simples, claras. INEFICIENCIA
•Soluciones elegantes. •Sobrecarga asociada con las llamadas a subalgoritmos
•Soluciones a problemas complejos. •Una simple llamada puede generar un gran número de
llamadas recursivas. (Fact(n) genera n llamadas
recursivas)
•¿La claridad compensa la sobrecarga?
•El valor de la recursividad reside en el hecho de que se
puede usar para resolver problemas sin fácil solución
iterativa.
•La ineficiencia inherente de algunos algoritmos
recursivos.
Ejemplos:

A) Cálculo de la factorial de un número, por ejemplo, 5.


B) Multiplicación entera: la definición recursiva de la multiplicación de dos números a y b, se
deriva de la definición de la multiplicación como una suma abreviada y la aplicación de la
propiedad asociativa de la suma.
c) Exponenciación entero: la definición recursiva de la operación exponenciación entera es
decir es calcular la potencia, se deriva de la definición de la potencia como una multiplicación
abreviada y aplicación de la propiedad asociativa de la multiplicación.

d) Máximo común divisor: todos los ejemplos anteriores se basan en la solución del mismo
problema para un caso más sencillo. la solución parcial obtenida no es la solución final. Sino
que debe combinarse de algún modo con los datos actuales. cuando la recursividad parcial con
los datos actuales para obtener la solución final, se dice que la recursividad es no final.
e) Suma de los elementos de un vector: esto puede expresarse también en recursivamente.
para ello, considérese que la suma de tales elementos, puede rescribirse como sigue, sin más
que considerar la propiedad asociativa de la suma.

f) Búsqueda binaria: esta especificación se basa en las siguientes suposiciones, el vector está
inicializando y sus elementos están ordenados, existen dos componentes ficticias en el vector,
que como el resultado de la búsqueda se determina la posición i en la que debería encontrarse
el elementó buscado.
g) Quicksort: el algoritmo de ordenación rápida o quicksort es un algoritmo recursivo de
ordenación que se basa en la siguiente idea. dado un vector a ordenar, se considera un elementó
cualquiera que se denominara pivote. etc.
Ejercicio de forma Recursiva

Lenguaje Usado: Python ANEXO CAPTURA DE PANTALLA


EJERCICIO DE FORMA ITERATIVA ANEXO CAPTURA DE PANTALLA

LENGUAJE : PYTHON

Llamaremos algoritmos recursivos a aquellos que realizan llamadas recursivas para llegar al
resultado, y algoritmos iterativos a aquellos que llegan a un resultado a través de una iteración
mediante un ciclo definido o indefinido.

Todo algoritmo recursivo puede expresarse como iterativo y viceversa. Sin embargo, según las
condiciones del problema a resolver podrá ser preferible utilizar la solución recursiva o la
iterativa
ANALISIS Y RESULTADOS:

Antes de programar cualquier función recursiva es necesario decidir cuál será el caso base y
cuál el caso recursivo. Para esta función, tomaremos n = 0 como el caso base, en el que
devolveremos 1; y el caso recursivo tendrá dos partes, correspondientes a los dos posibles
grupos de valores de n. El uso de la variable pot en este caso no es optativo, ya que es una de las
ventajas principales de esta implementación: se aprovecha el resultado calculado en lugar de
tener que calcularlo dos veces. Para transformar este algoritmo recursivo en un algoritmo
iterativo, es necesario simular la pila de llamadas a funciones mediante una pila que almacene
los valores que sean necesarios. En este caso, lo que apilaremos será si el valor de n es par o no.
Como se puede ver, este código es mucho más complejo que la versión recursiva, esto se debe
a que utilizando recursividad el uso de la pila de llamadas a funciones oculta el proceso de
apilado y desapilado y permite concentrarse en la parte importante del algoritmo.
CONCLUSION :

A medida que se realizan llamadas a funciones, el estado de las funciones anteriores se


almacena en una pila de llamadas a funciones. Esto permite que sea posible que una función se
llame a sí misma, pero que las variables dentro de la función tomen distintos valores. La
recursión es el proceso en el cual una función se llama a sí misma. Este proceso permite crear
un nuevo tipo de ciclos. Siempre que se escribe una función recursiva es importante considerar
el caso base (el que detendrá la recursividad) y el caso recursivo (el que realizará la llamada
recursiva). Una función recursiva sin caso base, es equivalente a un bucle infinito. Una función
no es mejor ni peor por ser recursiva. En cada situación a resolver puede ser conveniente
utilizar una solución recursiva o una iterativa. Para elegir una o la otra será necesario analizar
las características de elegancia y eficiencia

BIBLIOGRAFIA
https://sites.google.com/site/portafoliosenati/fundamentos-de-programacion/13-aplicar-
recursividad
https://www.fing.edu.uy/inco/cursos/fpr/wiki/index.php/Recursi%C3%B3n

También podría gustarte