+ 10

I need a explication, how function the recursivity?

Necesito una explicación, ¿cómo funciona la recursividad?

16th Sep 2021, 12:56 PM
CGO!
CGO! - avatar
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)
16th Sep 2021, 5:33 PM
LARG DEV
LARG DEV - avatar
+ 5
Pero igual se puede hacer recursividad para siempre def example: print('Texto de ejemplo XD') example()
16th Sep 2021, 5:35 PM
LARG DEV
LARG DEV - avatar
+ 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.
16th Sep 2021, 2:48 PM
Miguel Zabala
Miguel Zabala - avatar
+ 3
Con gusto te respondería pero aún estoy en nivel 0,1 😭
16th Sep 2021, 1:52 PM
Cienrazones
Cienrazones - avatar
+ 3
Miguel Zabala Muchas gracias
16th Sep 2021, 4:55 PM
CGO!
CGO! - avatar
+ 3
Miguel Zabala No entiendo, yo digo hacer una función recursiva, en vez de hacerlo con números, hacerlo con letras
16th Sep 2021, 5:24 PM
CGO!
CGO! - avatar
+ 3
16th Sep 2021, 5:36 PM
CGO!
CGO! - avatar
+ 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
16th Sep 2021, 5:42 PM
LARG DEV
LARG DEV - avatar
16th Sep 2021, 5:49 PM
CGO!
CGO! - avatar
+ 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.
17th Sep 2021, 2:32 AM
Miguel Zabala
Miguel Zabala - avatar
+ 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.
17th Sep 2021, 12:14 PM
Sanjay Kamath
Sanjay Kamath - avatar
+ 2
Cienrazones No te entendí 😅😅😅
16th Sep 2021, 4:53 PM
CGO!
CGO! - avatar
+ 2
Miguel Zabala ¿Pudieras darme un ejemplo con letras?
16th Sep 2021, 5:06 PM
CGO!
CGO! - avatar
+ 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
16th Sep 2021, 5:36 PM
Miguel Zabala
Miguel Zabala - avatar
+ 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
16th Sep 2021, 5:39 PM
Miguel Zabala
Miguel Zabala - avatar
+ 2
Luis Junior Lo sé, ya me convencí de utilizarla
16th Sep 2021, 11:29 PM
CGO!
CGO! - avatar
+ 2
Miguel Zabala Sí, bro, es muy extricta
17th Sep 2021, 7:46 PM
CGO!
CGO! - avatar
+ 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 😅
19th Sep 2021, 3:44 AM
Miguel Zabala
Miguel Zabala - avatar
+ 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?
16th Sep 2021, 5:08 PM
Miguel Zabala
Miguel Zabala - avatar
+ 1
★ⒸⒶⓁⒺⒷ ⒼⓊⒺⓇⓇⒶ ⓄⓇⓉⒺⒼⒶ★ No sé si entiendo bien, pero creo que te refieres a cadenas de texto en lugar de números ¿No?
16th Sep 2021, 5:26 PM
Miguel Zabala
Miguel Zabala - avatar