Título: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: raul338 en 18 Agosto 2010, 14:54 pm Hooola!
No sabia si presentar esto como reto o no (?) Código: http://gaussianos.com/la-conjetura-del-196/ Ahi esta, tienen que hacer una funcion booleana que calcule los numeros capicuas a partir de este, con un numero maximo de vueltas, para calcular si es de Lychrel o no :P Ademas de devolver el numero final dado La firma debe ser asi: Código
Si no se logra dar el numero de vueltas en menos de maxVueltas se toma como si fuera numero de Lychrel (aunque el numero este en la vuelta 21 :¬¬) NOTA: Cabe aclarar que debe devolver True cuando no se encuentra el numero capicua :silbar: El tiempo se medira con la clase CTiming ya publicada en retos anteriores... Ahora si! A codear! Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Psyke1 en 18 Agosto 2010, 14:55 pm Me apunto raul!! :D
DoEvents¡! :P Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: [D4N93R] en 18 Agosto 2010, 15:36 pm Tiene que ser en VB? xD
Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: isseu en 18 Agosto 2010, 16:13 pm lo hare más tarde, pero en c++
Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Novlucker en 18 Agosto 2010, 16:15 pm Ya lo hice, ahora lo tengo que modificar :xD
Dada la manera en que se calcula el número, probando incluso con 89 (es uno de los ejemplos de wikipedia) se desborda, no sirven los long :xD Saludos Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: raul338 en 18 Agosto 2010, 16:49 pm Corregido! Puse como double los tipos de datos, asi no hay desbordamientos :P
Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: 79137913 en 18 Agosto 2010, 16:52 pm HOLA!!!
Que bueno acabo de leer el post de novlucker y me saco las dudas Gracias!!! Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Novlucker en 18 Agosto 2010, 16:56 pm Código
Entendí que numeroFinal era el último generado, así que comienzo con ese, sino lo quito y no lo uso :xD De cualquier manera, esto sigue siendo funcional para números "pequeños", sino hay que hacer la suma mediante strings. Saludos Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: raul338 en 18 Agosto 2010, 17:29 pm Optimizando me quedo como la de novlucker!! :xD
Se me habia ocurrido comprar solo dando vuelta "despues de la mitad" del numero, pero... era mas lento ._. Aca esta, se podria decir que es practicamente igual a la de novlucker, solo que esta funciona aun para numeros grandes :xD Código
EDIT: Hecho en 56957,0293718157 ms, 10 To 100000, maxVueltas = 1000 (con DoEvents entre calculo de cada numero :xD) Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Novlucker en 18 Agosto 2010, 17:37 pm Dudo que tan grandes, la variable numeroFinal tiene un límite y ahí crashea.
Además, los códigos funcionan porque tiene el maxVueltas bajo, donde lo agrandes muere :xD [Edito]: El mío crashea con números más chicos xD Saludos Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: [D4N93R] en 18 Agosto 2010, 17:44 pm Ahí se los dejo, n se que tan weno sea eso, porque ni lo probé, no se si funciona en VB6 xD
me avisan xD Código
Saludos! PD: Primero y ultimo que hago en VB xD PD2: gracias a raul por portar el code a vb6 xD Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Novlucker en 18 Agosto 2010, 17:49 pm Ahora entiendo por que decías que no servía cuando lo pasabas de VB.NET a VB6 :xD
El de raul338 es el "más válido", a la próxima le pongo todas las verificaciones esas, yo simplemente las omití porque entendí que los números de prueba iban a ser válidos para la función :P Saludos Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: raul338 en 18 Agosto 2010, 17:51 pm jajaja las validaciones las agregue al final :P
D4N93R propone agregar un parametro con el numero de iteraciones dado para llegar al resultado final, que dicen, lo ponemos? (seria devolver i en mi caso :xD) Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Novlucker en 18 Agosto 2010, 17:54 pm Eso es porque necesita una excusa para poder agregar una parámetro más a la función, el que usa para la recursividad :xD
Saludos Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Tokes en 18 Agosto 2010, 20:35 pm Buen día, gente. Aquí les dejo mi aporte:
Código: Private Function EsNumLychrel4(ByVal num As Long, ByRef numeroFinal, Optional ByVal iteraciones As Long = 50) As Boolean Por el momento es todo. Saludos. Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Tokes en 18 Agosto 2010, 20:51 pm Aquí les dejo otra versión que según yo es más rápida.
Código: Private Function EsNumLychrel5(ByVal num As Long, ByRef numeroFinal, Optional ByVal iteraciones As Long = 50) As Boolean ¡Buen día! Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Karcrack en 18 Agosto 2010, 20:53 pm No me da tiempo a leerme la documentacion ni nada, pero veo que estais dando la vuelta al numero usando cadenas... Esto puede que os ayude a mejorar la velocidad :)
Código: Public Function lngReverse(ByVal lLong As Long) As Long Saludos ;) Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: BlackZeroX en 18 Agosto 2010, 21:15 pm Despues de que se me trabo la inche PC reice mi codigo aqui esta!¡. Código
Ducles Lunas!¡. Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Psyke1 en 18 Agosto 2010, 21:32 pm Citar Código
DoEvents¡! :P Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: BlackZeroX en 18 Agosto 2010, 21:45 pm strreverse devuelve un string yo a ese string le sumo 0 para pasarlo a numero, igual como le hago en C...
aqui lo dejo corregido Version 2. Código
Version 3. Código
Dulces Lunas!¡. Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Psyke1 en 18 Agosto 2010, 22:28 pm Interesante, no conozco esos truquillos, supongo que es mas rapido que convertirlo con CDbl(), no?¿
DoEvents¡! :P Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Karcrack en 18 Agosto 2010, 22:32 pm Deberia ser mas rapida mi funcion de lngReverse() que el StrReverse()... Alguien ha provado? XD
Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: BlackZeroX en 18 Agosto 2010, 22:45 pm no comprove coherencias!¡, por lo cual no comprove que estubieran bien dichas funciones Código
http://infrangelux.sytes.net/FileX/index.php?file=/BlackZeroX/Comprovaciones/Lychrel/Gral%20Lychrel%2001.zip&dir=/BlackZeroX/Comprovaciones/Lychrel& P.D.: En efecto Karcrack es mas rapido!¡. Dulces Lunas!¡. Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Tokes en 18 Agosto 2010, 23:29 pm Aquí dejo un nuevo código, basado en la función que nos mostró Karcrack.
Código: Private Function EsNumLychrel5(ByVal num As Long, ByRef numeroFinal, Optional ByVal iteraciones As Long = 50) As Boolean Y la función de Karcrack (modificada para que pueda manejar doubles y no sólo longs): Código: Public Function dblReverse(ByVal lDbl As Double) As Double Efectivamente es más rápido. Saludos.... Y muchas gracias Karcrack. Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: BlackZeroX en 18 Agosto 2010, 23:44 pm BlackZeroX (v 3) esta en base a la funcion de Karcrack xP Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: raul338 en 19 Agosto 2010, 00:14 am porque siempre las mias es una de las mas lentas? :xD
bueno, con la base de Karcrack y tokes, me quedo esto, un poquitin mas rapido que la de tokes :P pero muchisimo mas rapida que la mia anterior Código
Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Tokes en 19 Agosto 2010, 00:29 am Disculpen, hace rato puse mi código pero con instrucciones basura que nada que ver con el proceso (era para probar ciertas funciones). Aquí se los dejo corregido. Tiene prácticamente la misma velocidad de antes, pero sin ese código basura.
Código: Private Function EsNumLychrel5(ByVal num As Long, ByRef numeroFinal As Double, Optional ByVal iteraciones As Long = 50) As Boolean Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: LeandroA en 19 Agosto 2010, 00:47 am creo que por el momento la unica que funciona bien es la de Novlucker las demas no esta trabajando correctamente
solo tengo mis dudas con la de Novlucker con los numeros del 1 al 9 ya que dan numeros simples y no se cumple la condición de capicua la de raul338 tambien anda bien con el mismo problea que el de Novlucker y tambien pero hay un problema con el 11 ya que da como resultado 11 cuando deberia ser 22 @BlackZeroX 0 = blucle infinito la funcion deve devolver true si no se logra el capicua en los determinados ciclos tambien el problema del 1 al 10 pero peor, muestra erronos @Tokes no estas devolviendo "numeroFinal" correctamente. Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Tokes en 19 Agosto 2010, 00:59 am Disculpen, es cierto. Según yo ya devuelvo numero final en este código.
Código: Private Function EsNumLychrel5b(ByVal num As Long, ByRef numeroFinal As Double, Optional ByVal iteraciones As Long = 50) As Boolean Si alguien gusta hacerle alguna modiicación ¡Adelante! Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Psyke1 en 19 Agosto 2010, 01:01 am Citar Si alguien gusta hacerle alguna modiicación ¡Adelante! Si, yo si se la voy ha hacer, aqui esta:Código Faltaba el End Function... :laugh: :laugh: DoEvents¡! :P Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Tokes en 19 Agosto 2010, 01:06 am ¡Ja, ja! Soy un imbécil. Pero bueno, gracias, PsYkE1.
Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: raul338 en 19 Agosto 2010, 01:22 am Bien LeandroA, ya puse el filtro para que no acepte numeros de un digito, y que si es capicua que calcule igual :P
Los numeros de 1 solo digito no pueden ser calculados, ya que nunca cumpliran la condicion de ser capicua Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: [D4N93R] en 19 Agosto 2010, 01:32 am Visual Basic sucks.. xD :-X :-X :-X :-X :-X :-X :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬
:silbar: :silbar: :silbar: :silbar: :silbar: :silbar: :silbar: :silbar: Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: Psyke1 en 19 Agosto 2010, 01:34 am Citar Código: Tokes: 128,759 msec Visual Basic sucks.. xD :-X :-X :-X :-X :-X :-X :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :silbar: >:D:silbar: :silbar: :silbar: :silbar: :silbar: :silbar: :silbar: :silbar: Pd: El post para meterse con VB esta aqui: http://foro.elhacker.net/programacion_visual_basic/iquesttu_tambien_crees_que_visual_basic_es_para_tontos-t302471.0.html :laugh: DoEvents¡! :-* Título: Re: [RETO] ¿Fácil? Buscando los números de Lychrel Publicado por: [D4N93R] en 19 Agosto 2010, 01:54 am Gracias xD ya postié ahí xD :D
|