Pgina 1 de 2 12 ltimoltimo
Resultados 1 al 20 de 21

Tema: Iteracin o Recurrcin ?

  1. #1 Iteracin o Recurrcin ? 
    Colaborador HH
    Fecha de ingreso
    Jun 2006
    Ubicacin
    Uruguay
    Mensajes
    1.450
    Descargas
    11
    Uploads
    0
    Hola
    Saludos a todos mis compaeros del HH, hoy les vengo con una duda que hace tiempo que tengo sobre programacin.

    Como muchas sabrn, soy estudiante de la carrera de ingeniera en computacin - y s, no? xD -
    Entonces.. en nuestros cursos de programacin, nos obligan a entregar un trabajo para seguir con el curso, en caso de no entregarlo.. lo perdemos. He avanzado mucho en mi programa ( que ya va en unas 3000 y algo lineas de cdigo ) ( gracias a gondar_f )
    Actualmente para terminarlo me queda un procedimiento..
    Al no entender bien las espcificaciones del proyecto, me fui a leer el news de la facu..
    Me encontre con que en una clase de consulta una profesora habia hecho un pseudocdigo de este procedimiento.
    El dato curioso, es que este procedimiento se hacia de forma recursiva.

    Y.. personalmente.. no me gusta para nada hacer las cosas recursivas.
    A nosotros el manejo de punteros nos los ensearon de manera recursiva. Pero yo lo hago iterativo ( gracias gondar_f !! u rocks! )
    A mi este procedimiento ya se me ocurrio como resolverlo iterativamente.
    Pero sigo notando que mis profesores insisten en la recursin.

    Entonces.. como confo ms en ustedes que en mis profesores les vengo con esta pregunta.

    Qu es mejor, resolver un problema X iterativamente, o recusivamente ?

    Y bueno.. tal vez la respuesta imediata que se me viene a la mente es: depende.
    Depende de lo que se te haga ms fcil.

    Pero mi pregunta va ms all de esto, cul de las dos prcticas es ms recomendable si lo miramos desde el punto de la seguridad de la aplicacin, de portavilidad de la aplicacin, etc, etc.
    No s.. tal vez sea indiferente usar un mtodo al otro.. pero la verdad que no tengo idea.
    Tampoco nunca nos han enseado nada de eso, - es que es el prximo semestre el analisis de algoritmos - pero yo tengo la duda ahora

    Y tal vez alguien tenga alguna respuesta a esta pregunta, o pueda hacer un anlisis de esto.

    Desde ya, muchas gracias

    SAludos,
    Cypress
    Louis Armstrong le dice a Ella Fitzgerald
    "take another drink of wine, and maybe you change your mind"
     

  2. #2  
    Avanzado
    Fecha de ingreso
    Jan 2004
    Ubicacin
    Donde me dejan
    Mensajes
    433
    Descargas
    7
    Uploads
    0
    A mi parecer es mas costoso realizarlo con recursin no? Que conste que soy un novatillo en programacin, pero siempre e entendido que la recursividad al utilizarla deja procesos inacavados para luego, alfinal recojer todos los datos, en la iteracin simplemente vas aadiendo datos.

    Saludos "opinion de un ignorante" XDDDD
    El mejor maestro es uno mismo, aun que siempre va bien una ayudita
     

  3. #3  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicacin
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    Qu es mejor, resolver un problema X iterativamente, o recusivamente ?
    Y bueno.. tal vez la respuesta imediata que se me viene a la mente es: depende.
    Depende de lo que se te haga ms fcil.
    Pero mi pregunta va ms all de esto, cul de las dos prcticas es ms recomendable si lo miramos desde el punto de la seguridad de la aplicacin, de portavilidad de la aplicacin, etc, etc.
    Pregunta muy interesante y que antes o despus casi todos nos hacemos.

    Primeramente te voy a decir uno de los grandes motivos porque academicamente insisten tanto con la recursin:
    Desde los aos 40 hasta finales de los 70 y principios de los 80 (ms o menos hasta la generacin de Stalman, Bill Gates, Steve Jobs, Michael Dell... hicieron suya la informtica) todas los grandes investigadores y principales artfices de la informtica fueron en su mayora matemticos y casi todos los dems fsicos.

    Se quiera o no esto influyo mucho, y entre otras cosas, a los matemticos se les ensea una tcnica para desmotrar si una teora es correcta o no, es el mtodo matemtico, que adems sirve para encontrar nuevas formulas... bien pues la recursividad no es ms que una plasmacin de esa tcnica en la informtica... y por ello muchos de los grandes autores cuando plasmaron en sus obras algunos de los algoritmos que aun se usan pues los implmentaron de forma recursiva (por ejemplo el vuelta atras o Backtracking, termino y algoritmo de un "matemtico" Lehmer o algo as), eso no quiere decir que no se pueda hacer de forma interactiva, realmente el que suele usarse es el interactivo o vuelta atras interactivo... Y esos textos de esos primeros autores siguen siendo la fuente sobre la que se producen nuevos textos y los que se siguen dando en las facultades.

    Adems hay otro motivo academico para que le dean tanta importancia a los algoritmos en su modo recursivo, y es muy simple, usualmente los algoritmos recursivos suelen ser ms simples y fciles de leer que sus equivalente interactivos.

    Existe un ltimo motivo, aunque este no se hasta que punto ser cierto, pero tocando este mismo tema me lo comentaron un par de ocasiones, y es el siguiente: normalmente los que aprenden a programar por su cuenta o a travs de cursos de programacin, pues muy raramente usan tecnicas recursivas, todo lo contrario los titulados universitarios, ya que a lo largo de varios aos de carrera se les insitio y obligo a usar algoritmos recursivos, con el tiempo los interiorizan y acaba siendo su forma abitual de resolver problemas... y de ah que ciertos titulados, para demostrar que lo son e intentar diferenciarse de aficionados o de otros profesionales que no tienen ttulo superior, pues utilizan de forma abitual formas recursivas... Sinceramente yo nunca me tope con esto, pero cuando me lo comentaron varias veces es que puede que sea as en algunos sitios.

    Bien ahora que ya explique el por qu de esa mania con todo lo recursivo toca centrarse en tu pregunta.

    Empezemos por esto:
    Qu es mejor, resolver un problema X iterativamente, o recusivamente ?
    Pues la respuesta es un depende, interactivamente se pueden resolver todos los problemas, pero en algunas ocasiones la solucin recursiva es ms simple y lo que ello implica, menos propensa a errores y por encima es ms sencilla de leer. Tambin es cierto que en ocasiones que el problemas aparenta se muy complejo si lo miras en su totalidad y en cambio si lo piensas con un tamao menor ves que el paso de uno a otro se muy sencillo, de ahi que usualmente el mtodo divide y venceras es suele usar de forma recursiva, ya que es la forma de hacer las cosas de forma recursiva.

    Aun as siempre hay que tener en cuenta una cosa, los algoritmos recursivos (sean estos finales o no) requieren mucha ms memoria, son mucho ms lentos y abusan de la pila. Los recursivos finales eliminan buena parte de estos problemas, pero sus cifras comparadas con el equivalente interactivo son peores...

    Adems, muchos lenguajes no permiten la solucin de problemas de forma recursiva o no de forma eficiente, aunque tambin es cierto que otros estan pensados para que los programadores usen formas recursivas...

    Para resumir, como tu bien dices depende, en ciertas circunstancias la solucin recursiva o hacerlo recursivamente es ms adecuada, realmente la mayoria de las veces que esto ser cierto ser cuanto se pueda dividir fcilmente en subproblemas estremadamente sencillos (el clsico divide y venceras). En el resto de las veces olvidate de la forma recursiva, la forma interactiva es ms fcil de implementar y la mejor solucin.

    Pero mi pregunta va ms all de esto, cul de las dos prcticas es ms recomendable si lo miramos desde el punto de la seguridad de la aplicacin, de portavilidad de la aplicacin, etc, etc.
    Desde el punto de vista de seguridad pues es algo ambiguo, por un lado en algunas ocasiones la forma recursiva genera algoritmos mucho ms simples, algo que suele mejorar la seguridad al ser menos propenso a errores y porque es ms senillo de leer lo ya hace que sea ms sencillo de depurar.
    Pero tambin se da lo contrario, muchos grandes fallos de seguridad se debieron a que se consiguio romper la pila recursiva de ciertos programas (especilmente famosos los del cierto demonio de correo electronico).

    Pero para finalizar me voy a centrar en un algoritmo en sus 2 formas y te dire lo bueno de uno u otro, para no entrar con otros pues uno ya nombrado antes:
    El vuelta atras o backtracking.
    En su forma recursiva te olvidas de tener que implementar una pila, algo que en su forma interactiva tienes que hacer... claro si usas un lenguaje como Pascal o Modula2 que tienes que implementar manualmente la pila pues puede ser interesante la forma recursiva, adems de que evitas tener problemas con la utilizacin de la pila. Pero en la prctica casi todo el mundo opta por la forma interactiva por que te permite una flexibilidad que no te permite la forma recursiva... adems es un algoritmo que se usa usualmente para programas en donde al final acabas teniendo miles de nodos, y ah esta la gran ventaja interactiva, la forma recursiva requiere mucha ms memoria, ms procesador y no sera descabellado un desbordamiento de pila en la versin recursiva...

    Espero que toda esta parrafada te haya servido de algo... seguro que hyst te espondr otro punto de vista, el mio es ms de la calle y el suyo el ms formal, unido a lo de otros que espongas sus opiniones pues seguramente puedas hacerte una idea...

    Un Saludo
    He conocido muchos dioses. Quien niegue su existencia est tan ciego como el que confa en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
     

  4. #4  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicacin
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    A mi parecer es mas costoso realizarlo con recursin no? Que conste que soy un novatillo en programacin, pero siempre e entendido que la recursividad al utilizarla deja procesos inacavados para luego, alfinal recojer todos los datos, en la iteracin simplemente vas aadiendo datos.
    Te me has adelantado mientras redactaba (y eso que ni lo revise) ...

    Tienes razn, lo que dices es correcto, aunque la versin recursiva final ya va acumulando el resultado, pero en la prctica el recursivo final es lo que menos se usa.

    Un Saludo
    He conocido muchos dioses. Quien niegue su existencia est tan ciego como el que confa en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
     

  5. #5  
    Avanzado
    Fecha de ingreso
    Jan 2004
    Ubicacin
    Argentina
    Mensajes
    427
    Descargas
    1
    Uploads
    0
    Muy buena la respuesta de gondar_f pero quisiera agregar algunas cosas a mi critero.
    Tu pregunta si mal no entiendo es que ante la diyuncion de usar un metodo iterativo o uno recursivo te resulta mas facil el recursivo. Bueno yo en un tiempo opinaba como vos cuando estudiaba y me enseaban pascal y arboles binarios o listas circulares donde la recursion era algo nuevo y tambien penasba que un array era mas facil que una lista.
    La experiencia y como bien dices materias como analisis y diseo de algoritmos me hicieron cambiar de idea.
    Hay estructuras de datos que en si son recursivas. Y cuando trabajes con clases en c++, vas a tener muchas estructuras de datos dando vueltas. A que viene esto que la recursion es una espresion natural en cuanto a la computacion de datos aveces es buena o mala eso lo aprenderas leyendo sobre eficiencia de algoritmos y los metodos de medicion de Big "O".
    Cuando uno mide la complejidad temporal de un programa siempre la mide teoricamente y no con un reloj. Esa medida es espresada en terminos de Big O y en un ejemplo como en las torres de hanoi es mas sencilla de encontrar y mas eficiente de la manera recursiva.
    Redondiando esa opinion se va a cambiar con el tiempo y usasras recursion y te saldra muy facil. lo importante en recursion es tener en claro la condicion de corte y lugo tiene ventajas ya que algunas variables las puedes ir manteniendo o no mientras se mueve la pila.
    Te recomiendo que consigas el liro "estructuras de datos y algoritmos" de Aho, Hopcroft y Ullman. Es viejisimo imaginate que dice que el mejor lengiaje orientado a clases de la epoca es pascal cuando hoy se considera solo un lenguaje estructurado y se utiliza c++ para el uso de clases. Pero la base no cambia hay mucho algoritmos estan las estructuras de datos recursivas como los odiados grafos y sus famosos algoritmos djkstra, dept first search, kruskal y otros mas. Y ademas la base de calculo de complejiadad temporal.
    En cuanto a que seguro en tu catedra de analisis de algoritmos empezaras con c++ Te dire algo que todos quisas me discutan pero el libro de dennis ritchie es muy muy viejo y desactualizada para empezar el dia de hoy busca el de stroustrup. Ya se que uno es de c y otro de c++ y que no es lo mismo pero como la mayoria lo confunde y mayoria me refiero a profesores y preofesionales hacen un lenguaje medio donde usan las clases de c++ y el scanf() no ensenan flujos no ensenan templates ni nada que anque son mas dificiles al principio luego el paradigma nos resulta mas sensillos.
    bueno no espero servirte y recuerda en resumen usar recursion o iteracion no depende del gusto del programador sino del tipo de problema de la estructura de datos a usar del lengiaje para codificar (no es lo mismo java que anssambler) y de la compejidad temporal que arrojan las distintas soluciones.
    salu2 y suerte!
    <<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>
    No llores porque termino, sonrie porque sucedio-.
     

  6. #6  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Cita Iniciado por Markitos1024 Ver mensaje
    la mayoria lo confunde y mayoria me refiero a profesores y preofesionales hacen un lenguaje medio donde usan las clases de c++ y el scanf()
    Eso es totalmente cierto.

    Yo, para C++ recomiendo "Accelerated C++"

    Ms concretamente esta lista:
    http://rudbek.com/books.html

    Salu2

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
     

  7. #7  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicacin
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    pero como la mayoria lo confunde y mayoria me refiero a profesores y preofesionales hacen un lenguaje medio
    Estoy de acuerdo contigo markitos y con j8, la gente se confunde, aunque hasta cierto punto es justificable ya que el C++ es una evolucin del C e incluso el Ansi C se vio muy influido por el C++ que en ese momento parecia que se iva a comer el mundo...

    Un Saludo
    He conocido muchos dioses. Quien niegue su existencia est tan ciego como el que confa en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
     

  8. #8  
    Avanzado
    Fecha de ingreso
    Jan 2004
    Ubicacin
    Donde me dejan
    Mensajes
    433
    Descargas
    7
    Uploads
    0
    gondar_f supongo que me adelante por mi poca idea sobre el tema XD, es que empiezas a escribir y te pierdes dandole al teclado, cuantos teclados gastas al ao? Espero que no sea como yo con los bolis.

    Por cierto magnifica explicacin de todos.

    Saludos
    El mejor maestro es uno mismo, aun que siempre va bien una ayudita
     

  9. #9  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicacin
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    gondar_f supongo que me adelante por mi poca idea sobre el tema XD
    pues lo que escribiste estaba muy bien

    es que empiezas a escribir y te pierdes dandole al teclado, cuantos teclados gastas al ao?
    pues ltimamente me contengo porque tengo mucho menos tiempo y tengo que resumir demasiado...

    Es una verguenza la mala calidad de los teclados actuales, menos mal que compro de los varateiros que si no me iva a gastar una pasta al final del ao, josu que lo compras y un par de meses despus alguna de las teclas ya se queda enganchada, se te suelta, no funciona... que diferencia con unos teclados optomecanicos que haba hace unos aos, eran algo caros pero sabias que tenias teclado por lo menos por el tiempo que durase la garanta.

    Un Saludo
    He conocido muchos dioses. Quien niegue su existencia est tan ciego como el que confa en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
     

  10. #10 Nivel de recursin de Java en Applet? 
    Iniciado
    Fecha de ingreso
    Jun 2008
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    Hola. Me gustara saber el nivel de recursin de Java. Es decir, cuantas veces puede llamarse as mismo hasta agotar la pila? De que depende ese tamao de pila, de Windows (Sistema operativo) o del lenguaje de programacin que se est utilizando?

    Tengo un procedimiento recursivo que tiene que llamarse as mismo unas 40000 veces, pero cuando llega a 9114 se detiene. Miro en el administrador de tarea, y me doy cuenta que ya no est haciendo uso del procesador.
    Es limitado la pila que se utiliza en los procedimientos recursivos an cuando mi ordenador veo que tiene memoria disponible? Si es eso, puedo aumentar ese nmero?

    Esto lo estoy haciendo en un Applet y utilizando a Firefox.

    Gracias.
     

  11. #11  
    Colaborador HH
    Fecha de ingreso
    Sep 2006
    Ubicacin
    Argentina
    Mensajes
    2.073
    Descargas
    16
    Uploads
    0
    Cita Iniciado por gondar_f Ver mensaje
    Es una verguenza la mala calidad de los teclados actuales, menos mal que compro de los varateiros que si no me iva a gastar una pasta al final del ao, josu que lo compras y un par de meses despus alguna de las teclas ya se queda enganchada, se te suelta, no funciona... que diferencia con unos teclados optomecanicos que haba hace unos aos, eran algo caros pero sabias que tenias teclado por lo menos por el tiempo que durase la garanta.
    Un Saludo
    hombre estoy de acuerdo, de hecho
    termine usando un teclado de acceso rapido II de IBM, viejo, pero efectivo, existen un par de teclados que podrian servirte, uno que se enrolla, de goma y uno que proyecta las teclas (un teclado virtual)

    salu2
    ltima edicin por 4v7n42; 01-06-2008 a las 06:29
    "Acaso vuestro terror se asemeja al del despotismo? Si, la espada que brilla en las manos de los hroes de la libertad se asemeja a la espada con la que estn armados los esbirros de la tirana."
     

  12. #12  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Mensajes
    1.461
    Descargas
    15
    Uploads
    0
    Cita Iniciado por gondar_f Ver mensaje
    Es una verguenza la mala calidad de los teclados actuales, menos mal que compro de los varateiros que si no me iva a gastar una pasta al final del ao, josu que lo compras y un par de meses despus alguna de las teclas ya se queda enganchada, se te suelta, no funciona... que diferencia con unos teclados optomecanicos que haba hace unos aos, eran algo caros pero sabias que tenias teclado por lo menos por el tiempo que durase la garanta.
    No te lo tomes a mal, pero es que eres el terror de los teclados
    Imagino que en las tiendas de informtica tendrn una foto tuya con un "No vendan teclados a este tipo" debajo

    Hablando en serio, los teclados de ahora son una mierda. Ahora mismo estoy usando un NGS (producto espaol) que va dpm. Eso s, veremos durante cuanto tiempo

    Saludos
     

  13. #13  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Hasta hace muy poquito no quera saber nada de ningn tipo de teclado que no fuese mecnico. Tanto es as que dej de buscarlos en el mercado y usaba antiguos teclados mecnicos desechados que, tras un proceso de reciclado: limpieza, reparacin, engrase, pintura ..., me han estado sirviendo fielmente durante aos.

    La nica pega de estos antiguos teclados (s, nica) es, en mi humilde opinin, su tamao.

    Y digo "usaba" porque ahora me he pasado a los teclados de bajo coste. Cuando se desgastan demasiado, voy y compro otro. Al precio que estn... Pero es un lstima, puesto que todos esos materiales acaban donde no deben, mientras que los otros pueden seguir sirviendo despus de cambiar un muelle, una tecla, una lmina...

    Salu2


    Keep on Rollin'

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
     

  14. #14  
    Avanzado
    Fecha de ingreso
    Jan 2004
    Ubicacin
    Donde me dejan
    Mensajes
    433
    Descargas
    7
    Uploads
    0
    Yo realmente utilizo un teclado antiguo y la verdad es que funciona muy bien. Diria que es de estos mecnicos. Lo malo que miras entre las teclas lo que hay de fondo y te asustas XDD. eso de comer bocadillos mientras miras el foro creo que le sienta muy mal. Para decirte lo antiguo que es no tiene ni las teclas de windows XDD, aun tengo suerte que lleve la conexion de ps2. Jajaja.

    Saludos
    El mejor maestro es uno mismo, aun que siempre va bien una ayudita
     

  15. #15  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Cita Iniciado por foxwar Ver mensaje
    Yo realmente utilizo un teclado antiguo y la verdad es que funciona muy bien. Diria que es de estos mecnicos.
    Saca una tecla y mira si hay un muelle xD
    Cita Iniciado por foxwar Ver mensaje
    Lo malo que miras entre las teclas lo que hay de fondo y te asustas XDD. eso de comer bocadillos mientras miras el foro creo que le sienta muy mal.
    Mtodo a seguir:
    1. Le haces una foto y la conservas
    2. Le sacas todas las teclas
    3. Lo abres y le quitas todos los componentes electrnicos
    4. Lo metes en la lavadora junto con las teclas
    5. Montas los componentes electrnicos
    6. Coges la foto y colocas las teclas en el mismo orden

    Nota: ste mtodo no est demostrado que funcione, est obtenido a partir de variaciones del mismo xD
    Cita Iniciado por foxwar Ver mensaje
    Para decirte lo antiguo que es no tiene ni las teclas de windows XDD, aun tengo suerte que lleve la conexion de ps2. Jajaja.
    Otro punto a favor de estos antiguos teclados xD

    Salu2


    Keep on Rollin'

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
     

  16. #16  
    Avanzado
    Fecha de ingreso
    Jan 2004
    Ubicacin
    Donde me dejan
    Mensajes
    433
    Descargas
    7
    Uploads
    0
    Cita Iniciado por j8k6f4v9j Ver mensaje
    Saca una tecla y mira si hay un muelle xD
    Pues acabo de sacar una tecla y no lleva muelle Oo esto no puede ser.. Jajaja; supongo que el control tambien llevaria muelle XD

    Cita Iniciado por j8k6f4v9j Ver mensaje
    [*]Lo metes en la lavadora junto con las teclas
    Tu lo ves muy normal?? Jajaja. no hace falta meterlas en la lavadora, las teclas por fuera estan como nuevas si si. El problema es la porqueria por dentro que hay teclas que depende del dia se les oye crujir XDD.

    un dia de estos sacare las teclas y les pasare la aspiradora

    Saludos
    El mejor maestro es uno mismo, aun que siempre va bien una ayudita
     

  17. #17  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Mensajes
    1.461
    Descargas
    15
    Uploads
    0
    Cita Iniciado por foxwar Ver mensaje
    El problema es la porqueria por dentro que hay teclas que depende del dia se les oye crujir XDD.
    Qu asco to!
     

  18. #18 Favor contexten a Naldo9876543 
    Iniciado
    Fecha de ingreso
    Jun 2008
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    Hola, favor contesten lo de Naldo9876543.

    Gracias.
     

  19. #19  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicacin
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Hola, favor contesten lo de Naldo9876543.
    xD

    Disculpa, es que a veces nos vamos por los cerros de beda... jejeje, a ver, intentar ayudarte...

    El tamao de la pila en java est limitado. Depende de la configuracin de la JVM. Si mal no recuerdo se poda mediante una consola en el JDK asignar un nuevo tamao para la pila (tambin para el heap para el recolector de basura, y mas cosas).

    Si mal no recuerdo poniendo "ss N" podias especificar el nuevo tamao N para la pila (no estoy seguro si era as).

    La otra alternativa, si quieres que no haya problemas y que los usuarios no tengan que reconfigurar la mquinna virtual para poder ejecutar tu programa sin problemas, es una buena implementacin del cdigo.

    Me explico, no existe una alterntiva en la recursin que ests empleando que reduzca el nmero de llamadas? Si no es as, es decir, si a la fuerza tienes que hacer 40.000 llamadas, la opcin mas buena, es que crees hilos de ejecucin.

    Con los hilos de ejecucin (puedes consultar la ezine 3 de este sitio para ms informacin), consigues asignar nuevos recursos (contador de programa, espacio de memoria, pila, etc...), para cada hilo.

    As la forma de proceder es, cuando superes un lmite especificado por ti en tu cdigo en el nmero de llamadas recursivas, (no tiene por qu ser igual al tamao de la pila original, aunque cuanto ms proximo est al tamao de la pila, mejor optimizars), entonces creas un nuevo hilo de ejecucin, en donde debers pasar la direccin de retorno de la ltima llamada recursiva antes de la creacin del hilo, para as poder devolver las llamadas correctamente. El nuevo hilo seguir haciendo las llamadas recursivas que queden por hacer. Si en el nuevo hilo se supera el lmite especificado, se vuelve a crear otro hilo de ejecucin, en donde pasas la ltima direccin de retorno del 2 hilo... y as sucesivamente...

    Para implementar los hilos, usa la clase Thread

    Un saludo.
    ltima edicin por hystd; 07-06-2008 a las 14:16
    El optimista tiene ideas, el pesimista... excusas

     

  20. #20  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicacin
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    hombre estoy de acuerdo, de hecho
    termine usando un teclado de acceso rapido II de IBM, viejo, pero efectivo, existen un par de teclados que podrian servirte, uno que se enrolla, de goma y uno que proyecta las teclas (un teclado virtual)
    En el trabajo tengo uno de esos teclados de goma, pero no lo uso nunca porque es incomodo, su sistema de teclas es una basura... en resumen, como curiosidad est bien, pero no es un teclado adecuado para usarlo en la prctica... El de proyeccion de teclado solo lo vi una vez un diseo de ese tipo, y fuera en una feria tecnolgica de Silleda hace unos aos, y aunque el futuro puede ir por ese camino o ser muy adecuado para ciertas tareas... lo cierto es que a falta de provar una versin comercial para uso diario... pues mi opinin es que es un producto muy verde...
    Imagino que en las tiendas de informtica tendrn una foto tuya con un "No vendan teclados a este tipo" debajo
    Aunque los de alguna tienda (vease PCBOX o Legend principalmente) piensen eso, pero desde luego no dirian nada, hago demasiado gasto informtico para que me digan algo (aparte de lo que yo me gasto en informtica, llevo el mantenimiento de un par de empresas y adems compro material para amigos).
    Hablando en serio, los teclados de ahora son una mierda. Ahora mismo estoy usando un NGS (producto espaol) que va dpm. Eso s, veremos durante cuanto tiempo
    El gran problema es que te tienen una vida til muy corta, pero mientras no se joden, pues yo a pocos le encontre pegas, no cabe duda de que algunos son ms cmodos que otros... pero no sirve de nada que vaya muy bien si a los 2 meses alguna de las teclas ya se queda enganchada por ejemplo.

    Hasta hace muy poquito no quera saber nada de ningn tipo de teclado que no fuese mecnico. Tanto es as que dej de buscarlos en el mercado y usaba antiguos teclados mecnicos desechados que, tras un proceso de reciclado: limpieza, reparacin, engrase, pintura ..., me han estado sirviendo fielmente durante aos.
    No hay duda de que no han vuelto a fabricarse teclados como los mecnicos... y es cierto eran caros, pero no es un motivo para que ya no se fabriquen, ya que mucha gente se compra teclados caros (solo hay que ver a Logitech) y los mecnicos se venderan relativamente bien aunque fuesen carillos... Y por encima hoy en da se podran fabricar de un tamao mucho menor...
    Lo malo que miras entre las teclas lo que hay de fondo y te asustas XDD
    Eso con una aspiradora de precisin (como las que se usan para limpiar las impresoras laser) pues lo dejas como nuevo...

    Hola, favor contesten lo de Naldo9876543.
    La contestacin de hystd es muy buena, mejor dicho excepcional... pero tal vez no tengas que complicarte la vida tanto, creo que fue hasta java 1.4 cuando los niveles mximos de pila en un llamda recursiva eran tan cortos de forma predefinida... actualmente puedes llegar hasta cerca de un milln sin el ms mnimo problema, so se porque recientemente estuve ayudando a un compaero la prctica de la UNED del condenado Nonograma y estaba usando una busqueda en anchura (de forma recursiva) y en un nonograma 30x30 se acercaba peligrosamente al millon de llamadas recursivas y sin cambiar ningn parametro (y en mi equipo que tampoco cambie ningn parametro) funcionaba... por lo menos en mi equipo que fue donde primero funciono y est una instalacin tal como te lo instala el CD que te envia SUN con el Netbeans (le corregi un par de errores de cdigo... concretamente le cascaba cuando intentaba comparar un char con una cadena y el decia que no haba ningn error...)...

    Un Saludo
    He conocido muchos dioses. Quien niegue su existencia est tan ciego como el que confa en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
     

Marcadores

Marcadores

Permisos de publicacin

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •