Está en la página 1de 14

Ingeniería de

Sistemas
Recursividad
Mgt Ing. María del Pilar Venegas Vergara
RECURSIVIDAD

DEFINICIÓN

Consiste en definir un objeto o proceso en función de sí mismo.


Es útil para resolver problemas por descomposición en sub problemas.
Los sub problemas tienen idéntica estructura al problema original, pero el caso
que resuelven está reducido o es más pequeño.
RECURSIVIDAD
DEFINICIÓN
Un objeto recursivo es aquel que forma parte de sí mismo o se define en función de sí mismo

Ejemplos de objetos recursivos:


Una locomotora es un tren
Un tren es un vagón enganchado a un tren
El factorial de 0 es 1
El factorial de un número natural es el producto de dicho numero por el factorial de su antecesor

Funciones recursivas
Una función recursiva es aquella que contiene llamadas a ella misma

n! = n * (n -1) !
Función recursiva sin retorno

Un ejemplo de una función recursiva sin retorno, es el ejemplo de cuenta regresiva hasta cero a partir de un
número:

def cuenta_regresiva(numero):
numero-=1
if numero > 0:
print(numero)
cuenta_regresiva(numero)
else:
print ("booooom")
print ("Fin de la funcion", numero)

cuenta_regresiva(5)
Función recursiva con retorno
Un ejemplo de una función recursiva con retorno, es el ejemplo del cálculo del factorial de un número corresponde al producto
de todos los números desde 1 hasta el propio número

def factorial(n):
if n == 0: # Caso Base
return 1
else: # Caso recurrente
return n*factorial(n-1)

# Programa Principal # Leer un nro


nro = int(input('Ingrese un numero entero
positivo:’))

# Calcular el factorial del nro


fact = factorial(nro)
# Mostrar el factorial

print('El factorial es: ', fact)


Ejemplo
- Calcular el Nro total de hojas que se tienen de varios libros

● TOTAL = 113

●Libro 1= 50 pag Libro 2=30 pag Libro 3=15 pag libro 4=18 pag

libros = [50, 30, 15, 18]


suma = 0
METODO ITERATIVO
for libro in libros:
suma+=libro

print(suma)
Ejemplo
- Calcular el Nro total de hojas que se tienen de varios libros

TOTAL = 50 + TOTAL = 30 +
TOTAL = 15 +
TOTAL= 18

Libro 1= 50 pag Libro 2=30 pag Libro 3=15 pag libro 4=18 pag

def totalPaginas(libros):
METODO RECURSIVO if len(libros)==1:
return libros[0]
return libros[0] + totalPaginas(libros[1:])

print(totalPaginas([50,30,15,18]))
Ejemplo
- Calcular el Nro total de hojas que se tienen de varios libros

METODO RECURSIVO

def totalPaginas(libros):
if len(libros)==1:
return libros[0]
return libros[0] + totalPaginas(libros[1:])

print(totalPaginas([50,30,15,18]))
Ejemplo
def totalPaginas(libros):
if len(libros)==1:
return libros[0]
return libros[0] + totalPaginas(libros[1:])

print(totalPaginas([50,30,15,18]))
Ejemplo
FACTORIAL

●factorial(n) = n × (n – 1) × (n – 2) × … × 2 × 1

● factorial(n-1)=(n – 1) × (n – 2) × … × 2 × 1

● factorial(n-2)

●factorial(n) = n × factorial(n – 1)
Ejemplo

FACTORIAL
def factorial(n):
resultado = 1

for i in range(n):
resultado *= (i + 1)

return resultado

print (factorial(5))
Ejemplo
FACTORIAL

def factorial(n):
if n == 0: # Caso Base
return 1
else: # Caso recurrente
return n*factorial(n-1)

print (factorial(5))
Gracias

También podría gustarte