Foros del Web » Programando para Internet » Python »

Recursividad

Estas en el tema de Recursividad en el foro de Python en Foros del Web. Tengo problemas en entender este codigo de recursividad de python @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original def recurMul ( a , b ) :   ...
  #1 (permalink)  
Antiguo 27/02/2013, 18:53
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 8 meses
Puntos: 0
Recursividad

Tengo problemas en entender este codigo de recursividad de python

Código Python:
Ver original
  1. def recurMul(a, b):
  2.    if b == 1:
  3.       return a
  4.    else:
  5.       return a + recurMul(a, b-1)

funciona como si fuera una multiplicacion, pero no logro entender la suma en el return, entiendo que en el return volveria el metodo y parara cuando b se reduzca hasta 1, pero nuevamente manifiesto que no comprendo el
return a + recurMul(a,b-1) me dicen que es como si sumara a + a pero hay tres valores 'a', 'a' y 'b-1'

Ojala me halla hecho comprender.

Gracias...
  #2 (permalink)  
Antiguo 27/02/2013, 19:03
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Recursividad

Una mejor forma de ver como funciona la recursividad es con un árbol de llamadas. En esta caso tu árbol seria muy lineal.
Código:
recurMul(10, 3) -> Primera llamada a la función
    10 + recurMul(10, 2) -> segunda llamada a la función
        10 + (10 + recurMul(10, 1)) -> tercera llamada a la función
            10 + (10 + (10))

Etiquetas: recursividad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:13.