+ 10
I need a explication, how function the recursivity?
Necesito una explicación, ¿cómo funciona la recursividad?
43 Respostas
+ 9
Es que es mejor con números Caleb, se entiende mejor. P ej.
def example(num):
if num == 0:
print('Fin de la recursividad')
else
example(num-1)
La función se llama a sí misma a menos que pase algo (que num sea igual a 0)
+ 5
Pero igual se puede hacer recursividad para siempre
def example:
print('Texto de ejemplo XD')
example()
+ 4
Básicamente la recursividad es llamar a la función dentro de su propia definición.
Puedes pensar por ejemplo en una función como esta:
f(x) =
• f(x / 2) si x es par
• x si x es impar
Ahora evalúa esta función con diferentes números enteros y observa lo que sucede. Vamos a intentar por ejemplo con x = 12, no pierdas de vista la definición.
Como 12 es par, entonces f(12) = f(6)
Como 6 es par, entonces f(6) = f(3)
Como 3 es impar, entonces f(3) = 3
¿En base a esto cuál sería el valor númerico de f(12)?
La función simplemente es recursiva porque se evalúa a sí misma.
+ 3
Con gusto te respondería pero aún estoy en nivel 0,1 😭
+ 3
Miguel Zabala
Muchas gracias
+ 3
Miguel Zabala
No entiendo, yo digo hacer una función recursiva, en vez de hacerlo con números, hacerlo con letras
+ 3
Luis Ángel Ruiz Gonzáles
Miguel Zabala
Gracias, ahora entiendo
+ 3
La recursividad se puede complejizar tanto como tu quieras (hasta indirecta, con más de una función), pero en sí es bastante básica. Y SoloLearn lo explica muy bien, mejor que cualquiera de nosotros
+ 3
Luis Ángel Ruiz Gonzáles
Cierto
+ 3
Luis Junior Aunque hay ciertos casos donde la implementación utilizando recursividad es mucho más elegante, solo que también hay que prestar atención a la eficiencia. Por ejemplo, el cálculo del factorial de un número es un clásico ejemplo de recursividad, su implementación es más elegante que la de un bucle, pero menos eficiente.
+ 3
★ⒸⒶⓁⒺⒷ ⒼⓊⒺⓇⓇⒶ ⓄⓇⓉⒺⒼⒶ★ Por Favor, I dont speak Spanish/Portuguese...but recursion means calling the same function until an exit condition is met, usually n=0.
It occurs in Nature eg.snowflakes.
Unchecked it leads to stack overflow error.
+ 2
Cienrazones
No te entendí 😅😅😅
+ 2
Miguel Zabala
¿Pudieras darme un ejemplo con letras?
+ 2
★ⒸⒶⓁⒺⒷ ⒼⓊⒺⓇⓇⒶ ⓄⓇⓉⒺⒼⒶ★
Entiendo. Bueno, te pongo un ejemplo que por lo rápido se me ocurre. Hagámoslo con Python:
def f(x):
if len(x) < 10:
return f(x) + 'pana'
else:
return x
Nuevamente, esto es recursividad porque estoy evaluando la función dentro de sí misma. Me avisas si es entendible
+ 2
★ⒸⒶⓁⒺⒷ ⒼⓊⒺⓇⓇⒶ ⓄⓇⓉⒺⒼⒶ★ El ejemplo que te pone Luis Ángel Ruiz Gonzáles efectivamente también es recursividad, pero algo importante a notar es que no posee un condicional que haga salir del proceso, por lo que se repetirá infinitamente
+ 2
Luis Junior
Lo sé, ya me convencí de utilizarla
+ 2
Miguel Zabala
Sí, bro, es muy extricta
+ 2
Yo no me había fijado que el TAG era Python, por eso mi primera explicación fue general, más con enfoque matemático 😅
+ 1
¿Con cadenas de texto te refieres?
Aunque me gustaría saber primero si se entendió mi explicación ¿Sabrías por ejemplo diferenciar una función no recursiva de una recursiva?
+ 1
★ⒸⒶⓁⒺⒷ ⒼⓊⒺⓇⓇⒶ ⓄⓇⓉⒺⒼⒶ★
No sé si entiendo bien, pero creo que te refieres a cadenas de texto en lugar de números ¿No?