Título: Funcion recursiva Publicado por: Kinamox en 7 Abril 2018, 02:25 am Buenas, alguien de buen corazón podría darme una idea de como hacer esta funcion recursiva:
An = 2An-1 + 3 A0 = 1 [las que no son negritas son sub-indice] que corresponde a la sucesión {1,5,13,29,61..}. por favor, necesito hacer el codigo y no encuentro donde basarme.Les agradezco saludos. Título: Re: Funcion recursiva Publicado por: Serapis en 7 Abril 2018, 03:32 am Código: entero = funcion Recursion(entero Valor, byte veces, byte MaxVeces) p.d.: se me escapó el mensaje sin los comentarios pertinentes: Efectivamente valor inicialmente podría ser 1, como señalas en A0=1 (nunca 0). el subíndice 'n', sería 'veces' y MaxVeces, es limitar la recursion a un numero 'n' dado. ...es fácil transformarlo en que veces sea maxveces y acabe cuando llegue a 0, en ese caso decrementando veces... haciendo así innecesario el parámetro 'maxVeces'. Te invito a hacer esa ligera modificación... una vez entiendas su funcinamiento. p.d. 2: Notas que (iterando) la serie puedes resumirla así mejor: Código: v0 = 2 Así 'v' va tomando valores: 2, 4, 8, 16, 32 ... Mientras 'n' toma valores: 1, 1+4, 5+8, 13+16, 29+32... Título: Re: Funcion recursiva Publicado por: dijsktra en 8 Abril 2018, 11:50 am La programación recursiva... un tema apasionante.
Su origen es anterior a la programación iterativa y, en algunos contextos, se suele referir a ella como una modalidad de programación declarativa. ¿por qué? Porque... ¡ es más sencilla ! Consiste en declarar, no en programar, la expresión que deseas ( Esta sutil distinción se aprecia con la experiencia...). An = 2An-1 + 3 A0 = 1 Fíjate que es prácticamente lo mismo que en la expresión matemática.... No hay "variables" (salvo el parámetro), no hay asignaciones, no hay bucles... Casi parece matemáticas y no computación... Código: fun A(in int n) dev int La transcripción a lenguaje como C puede quedar: Código
La salida da lo siguiente: Código: A( 0) : 1 Si quieres una versión más "C-flavour"/NINJA puedes hacer: Código
Cuidadito que el paso de mates a C no es gratis... Más allá de A=29, la función desborda los valores de unsigned int.... |