Raised This Month: $51 Target: $400
 12% 

Funciones recursivas e iterativas


  
 
 
Thread Tools Display Modes
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 04-18-2013 , 16:19   Re: Funciones recursivas e iterativas
#11

Quote:
Originally Posted by YakumoHiratsuhi View Post
Las funciones recursivas son infinitas por defecto, amenos de que estas se paren por algún error o motivo, mientras que las iterativas si estan bien programadas, solo llegan a cierto numero de iteraciones.

En mi opinión lo que dice gladius es lo más acertado, si se puede utilizar una iteración, usen la iteración, no todos los ensambladores manejan de la misma manera la memoria.
Según mi profesora (Y estoy de acuerdo) una función recursiva tiene que tener lo que se llama una base, que es la condición que hace que termine... Sino, se irian cargando y cargando bloques en memoria y en algún momento se llegará a ocupar toda la memoria.

@XINLEI la memoria en recursión en python se maneja como los lenguajes usados hoy en día... lo puse en python porque es como lo estoy viendo pero mi pregunta fue mucho mas general.

@gladius siempre con la respuesta acertada, me aclaraste mi duda gracias.

En conclusión, no usar la recursión para cosas sensillas porque la iteración es mas rápida para esos casos. Si hay algo muy complejo que puede ser fácilmente resuelto con recursión, ahí es aplicable...

La profesora me confundió porque usamos varios ejemplos pero todos sensillos entonces nunca le llegaba a comprender el sentido de usarlas mientras yo intuía que la iteración era mas simple de aplicar, razonar y a la vez mas rápida.
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 04-18-2013 , 19:44   Re: Funciones recursivas e iterativas
#12

Quote:
Originally Posted by Neeeeeeeeeel.- View Post
En conclusión, no usar la recursión para cosas sensillas porque la iteración es mas rápida para esos casos. Si hay algo muy complejo que puede ser fácilmente resuelto con recursión, ahí es aplicable...
Recursión es más rápido que iteración cuando el compilador está optimizado para eso. Antes, Python no lo estaba, actualmente no sé.

De todas formas, decir que "tal cosa" es mejor o más rapido que "la otra cosa" es difícil, ya que depende del hábito del programador, del ambiente y del problema a resolver.
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 04-18-2013 , 21:07   Re: Funciones recursivas e iterativas
#13

Quote:
Originally Posted by shinoda View Post
Recursión es más rápido que iteración cuando el compilador está optimizado para eso. Antes, Python no lo estaba, actualmente no sé.

De todas formas, decir que "tal cosa" es mejor o más rapido que "la otra cosa" es difícil, ya que depende del hábito del programador, del ambiente y del problema a resolver.
Compilador? Python no tiene compilador...

Y si entiendo tu punto de que mejor o mas rápido depende de cada caso.
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
gladius
Veteran Member
Join Date: Jul 2008
Location: Santiago, Chile
Old 04-18-2013 , 22:10   Re: Funciones recursivas e iterativas
#14

Quote:
Originally Posted by shinoda View Post
Recursión es más rápido que iteración cuando el compilador está optimizado para eso. Antes, Python no lo estaba, actualmente no sé..
La recursividad de por sí es más lento. Si bien en ejemplos sencillos la diferencia puede ser mínima pero si tratas de resolver fórmulas matemáticas más complejas te darás cuenta que la iteración es más rápida, más eficiente en rendimiento y menor consumo de memoria.

Quote:
Originally Posted by shinoda View Post
De todas formas, decir que "tal cosa" es mejor o más rapido que "la otra cosa" es difícil, ya que depende del hábito del programador, del ambiente y del problema a resolver.
No es que sea difícil, tienes mucha razón depende del hábito, medio y problema a resolver, pero, debes considerar el método que se utiliza, el tiempo de compilación, las necesidades del programa, el consumo de la máquina y el resultado. Y si hay diferencias en algunas de ella claramente se puede definir un mejor o más eficiente (En programas de gran magnitud donde si se note una diferencia).
__________________
Proyects
Kreedz Chile Mod [100%] (Fixing some details).


Last edited by gladius; 04-18-2013 at 22:10.
gladius is offline
Send a message via MSN to gladius Send a message via Skype™ to gladius
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 04-18-2013 , 23:04   Re: Funciones recursivas e iterativas
#15

Quote:
Originally Posted by Neeeeeeeeeel.- View Post
Compilador? Python no tiene compilador...

Y si entiendo tu punto de que mejor o mas rápido depende de cada caso.
Usé la palabra compilador para generalizar, no sabía que Python no tenia compilador - Bueno, si quieres saber si python tiene el "compilador" optimizado, googlea si Python tiene soporte para Tail Call Optimization (TCO)

@Gladius
Sí, me falto aclarar algunas cosas. Es verdad que cada vez que una función se llama a sí misma, consume más memoria y puede causar "stack overflow", pero con TCO esto ya no sucede, si no que actua más como un bucle for (aunque en el código parezca totalmente recursivo pero en realidad no lo es).

En lo otro quizá tengas razón, nunca me puse a comparar porque siempre usé Loops - En problemas no-grandes, recursión con TCO puede ser más rápido que iteraciones.

De todas formas, estoy hablando de 3 o 4 años atrás, ahora hay compiladores modernos y puede ser que todo lo que dije sea verdad o no -- ya no me dedico a esas cosas
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 04-20-2013 , 13:07   Re: Funciones recursivas e iterativas
#16

Bueno el viernes tube mi siguiente clase de programación y explicaron las ventajas y desventajas de recursión e iteración...


Lo de soluciones simples y claras lo dudo mucho, ya que la mayoría de los códigos recursivos tenés que seguirlos de inicio a fin usando tu cabeza como compilador para entenderlos (Mi profesora dijo lo mismo casi aerca de ese punto).



PD: No tiene soporte para TCO
__________________

Last edited by Neeeeeeeeeel.-; 04-20-2013 at 13:34.
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
XINLEI
me too
Join Date: Jun 2011
Location: Colombian Coffee storage
Old 04-20-2013 , 13:24   Re: Funciones recursivas e iterativas
#17

Quote:
Originally Posted by Neeeeeeeeeel.- View Post
Bueno el viernes tube mi siguiente clase de programación y explicaron las ventajas y desventajas de recursión e iteración...


Lo de soluciones simples y claras lo dudo mucho, ya que la mayoría de los códigos recursivos tenés que seguirlos de inicio a fin usando tu cabeza como compilador para entenderlos (Mi profesora dijo lo mismo casi aerca de ese punto).

Se podria decir que ahí esta la respuesta del thread, pero ya que sacó esas diapositivas, ¿cuales son las ventajas y desventajas de la iteracion?
XINLEI is offline
gladius
Veteran Member
Join Date: Jul 2008
Location: Santiago, Chile
Old 04-21-2013 , 14:14   Re: Funciones recursivas e iterativas
#18

Soluciones fáciles es que hay métodos en los cuales haciéndolo iterativamente tienes que hacer ciertos de chequeos y líneas de comparación y setear valores que con recursividad puedes pasar esos valores por la función de manera sencilla. Claramente debes saber bien lo que estás haciendo para que el resultado sea el correcto.

Soluciones elegantes es por la claridad del código (claro que en ejercicios complicados de todas maneras una función recursiva puede ser fea xD)

Soluciones a problemas complejos es como escribí antes acerca de funciones de problemas matemáticos.


Las desventajas son las mismas que estuvimos hablando antes igual
__________________
Proyects
Kreedz Chile Mod [100%] (Fixing some details).

gladius is offline
Send a message via MSN to gladius Send a message via Skype™ to gladius
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 04-21-2013 , 15:57   Re: Funciones recursivas e iterativas
#19

Quote:
Originally Posted by XINLEI View Post
Se podria decir que ahí esta la respuesta del thread, pero ya que sacó esas diapositivas, ¿cuales son las ventajas y desventajas de la iteracion?
Para mi las ventajas de la iteración es que en la mayoría de los casos es más rápida, más fácil, usa menos memoria y no tiene el problema de que si lo repetis indefinidamente te sale un error.
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:51.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode