Título: [RETO] Project Euler 1 Publicado por: Psyke1 en 23 Enero 2013, 12:15 pm ¿Qué os parece si hacemos todos los retos de Proyect Euler (http://projecteuler.net) ?
Después se podría poner una chincheta con todos los ejercicios guardados. :) ¿Empezamos por el 1? Código: http://projecteuler.net/problem=1 DoEvents! :P Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 23 Enero 2013, 12:24 pm me parece excelente. ;D
Aqui tienes a un participante. Por cierto pésimo en matemáticas. jajajaja EDITO: segun el problema dice esto. If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. según lo que se 10 es divisible entre 5. entonces la suma seria 33. o no ? EDITO. 1 Si esta bien no leí la palabra below. saludos EDITO: 2 Aquí esta el mio. Código
Como Funcion para un Numero dado. Código
saludos Título: Re: [RETO] Proyect Euler 1 Publicado por: 79137913 en 23 Enero 2013, 14:17 pm HOLA!!!
Dany, yo que vos busco sobre optimizacion de codigo. Código
GRACIAS POR LEER!!! Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 23 Enero 2013, 15:27 pm HOLA!!! Dany, yo que vos busco sobre optimizacion de codigo. gracias por el Consejo. Codigo optimizado: Código
Saludos Título: Re: [RETO] Proyect Euler 1 Publicado por: 79137913 en 23 Enero 2013, 16:29 pm HOLA!!!
Bueno, mejoraste el largo del codigo y un poco la velocidad esta bien, pero mira el mio y tu codigo. Podras observar que en mi codigo funciona haciendo sumas de los casos positivos dentro de el campo muestral (1-999) y quitando al final las superposiciones mientras que el tuyo lo que hace es analizar una por una todas las probabilidades y extraer de ellas las que cumplen las condiciones. la cantidad de vueltas del primer bucle es de 200 , el segundo 133 y el tercero 66, dando un total de 399 vueltas muchas menos que en tu codigo de 999. En definitiva tu codigo hace prueba y error, el mio une los 2 grupos de multiplos y quita los repetidos. P.d: Eso que hago de ct + ct + ct es lo mismo que ct *3 pero es mas rapido para que lo tengas en cuenta. GRACIAS POR LEER!!! Título: Re: [RETO] Proyect Euler 1 Publicado por: $Edu$ en 23 Enero 2013, 16:42 pm Me instalaria el visual basic especialmente para esos retos xD Pero podrias traducirlos y plantear el ejercicio como haces siempre Psyke? asi nadie se confunde traduciendo y terminamos haciendo todos cosas distintas jaja, y ademas de que esta bueno cuando pones como queres la funcion y ejemplos de valores que retornara.
Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 23 Enero 2013, 16:45 pm HOLA!!! Bueno, mejoraste el largo del codigo y un poco la velocidad esta bien, pero mira el mio y tu codigo. Podras observar que en mi codigo funciona haciendo sumas de los casos positivos dentro de el campo muestral (1-999) y quitando al final las superposiciones mientras que el tuyo lo que hace es analizar una por una todas las probabilidades y extraer de ellas las que cumplen las condiciones. la cantidad de vueltas del primer bucle es de 200 , el segundo 133 y el tercero 66, dando un total de 399 vueltas muchas menos que en tu codigo de 999. En definitiva tu codigo hace prueba y error, el mio une los 2 grupos de multiplos y quita los repetidos. P.d: Eso que hago de ct + ct + ct es lo mismo que ct *3 pero es mas rapido para que lo tengas en cuenta. GRACIAS POR LEER!!! Claro pero si te fijas en tu código haciendo tantas sumas pierdes velocidad. si te fijas en el tiempo aun mi función con 999 repeticiones es un 30% o 40% mas rápida que la tuya. Edito: un 20% o 10% Título: Re: [RETO] Proyect Euler 1 Publicado por: 79137913 en 23 Enero 2013, 17:09 pm HOLA!!!
Eso que me decis me deja atonito... Hice los testeos y los acabe de realizar nuevamente, tu funcion es aprox 100% mas lenta que la mia ( y siendo generoso 100%), proba con este ejemplo que arme para medir el timing, acordate que se testea compilado. (borre el codigo por que lo hizo E_C abajo. GRACIAS POR LEER!!! Título: Re: [RETO] Proyect Euler 1 Publicado por: Elemental Code en 23 Enero 2013, 17:29 pm Código
Ok, con esta funcion de testeo los resultados mios son: (http://s14.postimage.org/jnu95aarx/Tiempos.png) Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 23 Enero 2013, 17:51 pm HOLA!!! Eso que me decis me deja atonito... Hice los testeos y los acabe de realizar nuevamente, tu funcion es aprox 100% mas lenta que la mia ( y siendo generoso 100%), proba con este ejemplo que arme para medir el timing, acordate que se testea compilado. (borre el codigo por que lo hizo E_C abajo. GRACIAS POR LEER!!! Estabas en lo cierto. bueno no un 100 pero si mucho mas. la comprobé así. Código
gracias vere si la puedo mejorar. saludos Título: Re: [RETO] Proyect Euler 1 Publicado por: LeandroA en 23 Enero 2013, 20:38 pm Hola yo la verdad, no entiendo, en primer instancia dice que 3, 5, 6 and 9 son los que estan por devajo de 10, hasta hay todo bien, pero luego sus resultados no me son coherentes con esta lógica (aunque segun la pagina el resultado final es correcto)
pero por ejemplo el ejemplo de Danyfirex, solo mirando los primeros números de multiplos de 3 imprime esto Citar 1 2 4 5 7 8 10 11 y no veo que el 2 sea un múltiplo de 3 , ni el resto de los siguientes. ami la logica me dice algo asi, Código
porque estoy equivocado??? Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 23 Enero 2013, 20:44 pm Hola yo la verdad, no entiendo, en primer instancia dice que 3, 5, 6 and 9 son los que estan por devajo de 10, hasta hay todo bien, pero luego sus resultados no me son coherentes con esta lógica (aunque segun la pagina el resultado final es correcto) pero por ejemplo el ejemplo de Danyfirex, solo mirando los primeros números de multiplos de 3 imprime esto y no veo que el 2 sea un múltiplo de 3 , ni el resto de los siguientes. ami la logica me dice algo asi, porque estoy equivocado??? hasta ahi vas bien. pero entonces te faltaría quitar los múltiplos de 15. Título: Re: [RETO] Proyect Euler 1 Publicado por: Psyke1 en 23 Enero 2013, 22:04 pm ¡Jajajaja! ¡Menudo lío se ha montado! :laugh: Y eso que estamos con el reto 1. :silbar:
Creo que lo idóneo sería que le pudieramos pasar el número por parámetro, es más genérico. Y la función debe funcionar SIEMPRE. Aquí dejo unos ejemplos de llamadas que deben de devolver resultado correcto: Código
Aquí dejo mi forma de hacerlo: Código
La próxima vez pondré el reto traducido, y el resultado que debe retornar para evitar confusiones. :rolleyes: DoEvents! :P Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 23 Enero 2013, 22:08 pm @Psyke1
creo la primera debería imprimir 234168 en vez de 233168. 100% de acuerdo en poner el reto en Español. Título: Re: [RETO] Proyect Euler 1 Publicado por: Psyke1 en 23 Enero 2013, 22:13 pm @Danyfirex
Código: http://code.google.com/p/projecteuler-solutions/wiki/ProjectEulerSolutions Ahí está el resultado de todas las soluciones. ;) DoEvents! :P Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 23 Enero 2013, 22:21 pm @Danyfirex Código: http://code.google.com/p/projecteuler-solutions/wiki/ProjectEulerSolutions Ahí está el resultado de todas las soluciones. ;) DoEvents! :P A pues así pues si. bueno en fin aqui dejo la mia como la pides. no es lo mas optimo pero funciona bien. Código
Cuando y donde podemos colocar el reto 2? Título: Re: [RETO] Proyect Euler 1 Publicado por: imoen en 24 Enero 2013, 04:35 am En mi opinion este es el codigo mas claro
Al final pongo el visual basic eh xD bs imoen Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 24 Enero 2013, 04:37 am mmm el código es fácil de hacer por lo cual yo solo me preocupe por la velocidad... evite calcular el modulo/residuo...
Versión 1. Código
Versión 2 (Menos iteraciones, más código). Código
P.D.: ¿Empezare a realizar el segundo... o me espero?. Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 24 Enero 2013, 06:29 am Estos resultados fueron generados desde el IDE ya que no puedo compilar.
Código: Tiempo 7913 978.902 msec CTiming.cls (http://www.xbeat.net/vbspeed/download/CTiming.zip) Código:
Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: MCKSys Argentina en 24 Enero 2013, 10:58 am Pongo el mío, aunque es más lento que el de BlackZeroX:
Código
En un EXE compilado, los tiempos me dan: Código: Tiempo BlackZeroX V2 55.732 msec PD: Mirando el ASM generado, veo que el secreto está en no usar multiplicaciones ni divisiones. Aunque no es sencillo hallar un algoritmo con eso (y que sea diferente al de BlackZeroX!! ;D) Título: Re: [RETO] Proyect Euler 1 Publicado por: MCKSys Argentina en 24 Enero 2013, 11:13 am Nueva función:
Código
Compilados, estos son los tiempos: Código: Tiempo BlackZeroX V2 66.052 msec Estoy desvelado y no lo puedo creer aún, así que verifiquen!!!!!!!!!!! Saludos! Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 24 Enero 2013, 11:27 am PD: Mirando el ASM generado, veo que el secreto está en no usar multiplicaciones ni divisiones. Si no mal recuerdo de mis clases la base del procesamiento numérico de una computadora esta en la SUMA... Se zarpaste con esas operaciones aun que NO funciona para varios números!¡... Probé tu función y la mía (Debido a la alta complejidad) con la función de Spyke1... Código
Son mas errores pero me corta las primeras salidas el Debug... Código: MCKSys Argentina Error: 7038 Título: Re: [RETO] Proyect Euler 1 Publicado por: imoen en 24 Enero 2013, 11:45 am Hola
Una pregunta chicos , con la velocidad de los codigos , jeje, veamos dos cosas A) Sabeis que para medir la velocidad debeis de usar el mismo equipo ?¿?¿ puesto que cad aprocessador aportara distintas velocidades, en esto incluso afectara el sistema operativo y la velocidad de la ram. B) Un codigo un poco mas rapido no puede ser a costa de ofuscar el codigo o hacer como he visto por hay CT+CT+ct .... asi hasta el infinito y mas alla , para eso se invento los incrementadores add ct,ct. C) exacto no usar divi y multiplicaciones hace uqe la velocidad aumente pero y si en vez de eso usais los movimientos de bytes ?¿( correr bytes) bueno eso son mis opiniones bs imoen Título: Re: [RETO] Proyect Euler 1 Publicado por: MCKSys Argentina en 24 Enero 2013, 11:59 am Si no mal recuerdo de mis clases la base del procesamiento numérico de una computadora esta en la SUMA... Se zarpaste con esas operaciones aun que NO funciona para varios números!¡... Probé tu función y la mía (Debido a la alta complejidad) con la función de Spyke1... Código
Son mas errores pero me corta las primeras salidas el Debug... Código: MCKSys Argentina Error: 7038 Me parece que están al revés. Euler_1 es mi función y mul3and5 es la tuya. :P Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 24 Enero 2013, 12:04 pm en VB 6 no existe los operadores para desplazamiento de bits... para simularlo los multiplicamos o dividimos según sea el caso...
Código: a << 1 // Desplazamiento de 1 a la izquierda en C/C++. La cosa de estos retos es generar códigos con las LIMITACIONES que nos da el lenguaje. * La velocidades SON RELATIVAS no importa el procesador puesto que se podría hacer una simple regla de 3!¡, es decir si una función es mas rápida en procesarse que otra en un procesador que dura Y tiempo, este mismo tiempo será relativo en otro procesador con un tiempo Y +/- Mili-segundos... Has la prueba y veras... Las velocidades son aproximadas. ----> Había puesto mal el código de prueba ya lo corregí (mi versión V2 JAMA se llamaba). Código: Tiempo 7913 872.496 msec Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 24 Enero 2013, 12:10 pm Me parece que están al revés. Euler_1 es mi función y mul3and5 es la tuya. :P Madre que me desvelo son las 06:00 am y no e dormido. ->> Error Corregido las dos funciones trabajan perfecto... Madre todo por un "=" Lineas 21 (Versión 1) y 31 (Versión 2) de mi funciones respectivas Código To Código
Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: MCKSys Argentina en 24 Enero 2013, 12:14 pm Madre que me desvelo son las 06:00 am y no e dormido. Dulces Lunas!¡. jejeje.. estamos igual :) De todas formas, estuve probando hasta 20000 y mi función no genera errores (Comparada con la de Psyke1). Creo que fue buena idea sacrificar los bucles por las multiplicaciones y divisiones... :) Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 24 Enero 2013, 12:18 pm Creo que fue buena idea sacrificar los bucles por las multiplicaciones y divisiones... :) Ya ando trabajando en algo... Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 24 Enero 2013, 14:12 pm Esta es la tercera versión... mejore el tiempo pero que alguien compruebe compilado!¡.
Código: Tiempo 7913 930.892 msec Código
Les dejo mi Análisis que anduve asiendo en el Block de Notas... Algo similar hice en las versiones anteriores. Lo que trato de obtener son simples formulas de series numéricas bajo patrones... /* 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Cantidad múltiplos de 3 = 10 <--- Tomamos TODOS los múltiplos de 3 (3, 6, 9, 12, 15, 18, 21, 24, 27, 30, ...) 01 02 04 05 07 08 10 11 13 14 16 17 19 20 22 23 25 26 28 29 Cantidad múltiplos de 5 = 6 Removiendo múltiplos de 3 que se repitan en los de 5 = 4 múltiplos de 5 son los que quedan. Se recurre en un patrón de 2 múltiplos de 5 y el siguiente se excluye por que será múltiplo de 3 como se ve en los números anteriores ( 5, 10, 20, 25, 35, 40, ...). Por lo tanto Para 30 =1(3) + 2(3) + 3(3) + 4(3) + 5(3) + 6(3) + 7(3) + 8(3) + 9(3) + 10(3) =3 * (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10) <--- Se genera una sumatoria multiplicada por 3. =3 * 10 * (10 + 1) \ 2 Por lo tanto: z = Numero Máximo. N = Z \ 3 = 3 * N * (N + 1) \ 2 <--- Formula trozo 1 Ok... = 1(5) + 2(5) + 4(5) + 5(5) = 5 * (1 + 2 + 4 + 5) <-- Casi se genera una sumatoria así que sumo 3 y resto 3 ( 3-3 = 0 ) esto no importa no afecta... = 5 * (1 + 2 + 3 + 4 + 5 - 3) <-- Sumatoria que se le resta 3 y a su resultado se multiplica 5. = 5 * (5 * (5 + 1) \ 2 - 3) Por lo tanto: z = Numero Máximo. N = Z \ 5 = 5 * (N * (N + 1) \ 2 - 3 ) <-- Aun falta corroborar si no hay que multiplicar o dividir ese -3 por lo tanto Expando... = 5 * (1 + 2 + 4 + 5 + 7 + 8 + 10 + 11) = 5 * (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 - 3 - 6 - 9) = 5 * (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 - 3(1 + 2 + 3)) <-- Si habia algo que hacerle a ese -3 se le multipplicaba por una sumatoria. = 5 * (11 * (11 + 1) \ 2 - 3 ( 3 * (3 + 1) \ 2)) Por lo tanto: z = Numero Máximo. M = Z \ 5 I = M \ 3 = 5 * ((M * (M + 1) \ 2) - 3 ( I * (I + 1) \ 2)) <-- Formula trozo 2 Ok Por lo tanto para calcular la sumatoria de los múltiplos de 3 y 5 es: (3 * N * (N + 1) \ 2 + N) + (5 * ((M * (M + 1) \ 2) - 3 * (I * (I + 1) \ 2))) Donde: z = Numero Máximo. N = Z \ 3 M = Z \ 5 I = M \ 3 Todas las divisiones son en ENTEROS "\" */ --> Edito Me estoy dando cuenta que el código es SIMILAR pero no igual al de MCKSys Argentina (Saca una sumatoria hasta 15, en base a un análisis similar)... me di cuenta ya tarde... Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: Danyfirex en 24 Enero 2013, 15:04 pm Bueno aquí dejo mi otra funcion un poco mas optima que las anteriores ("mias") :¬¬
Código
Muy Rápidas las de BlackZeroX & MCKSys Argentina :o saludos Título: Re: [RETO] Proyect Euler 1 Publicado por: MCKSys Argentina en 24 Enero 2013, 16:18 pm Me estoy dando cuenta que el código es SIMILAR pero no igual al de MCKSys Argentina (Saca una sumatoria hasta 15, en base a un análisis similar)... me di cuenta ya tarde... Creo que la idea es muy similar: En mi caso dividí la cosa en 3 partes: la sumatoria de los multiplos de 3, la de los de 5 y la sumatoria de las "colisiones" entre ambos. La primera cuenta calcula la suma de todos los "15"s que hay entre 3 y el numero dado. Luego calculas la suma de los multiplos de 5 y le resta los ya obtenidos y por ultimo hace lo mismo pero con los de 3. La formula n * (n+1) / 2 me vino al pelo para reemplazar la sumatoria 1..n y asi quitar los bucles. En fin, creo que este reto ya ha sido superado y convendria pasar al siguiente, aunque, bueno, no se si estan todos de acuerdo... :) Saludos! PD: @BlackZeroX: Esta noche, cuando llegue a casa, hago benchmarks con compilados! Título: Re: [RETO] Proyect Euler 1 Publicado por: Psyke1 en 24 Enero 2013, 16:54 pm En fin, creo que este reto ya ha sido superado y convendria pasar al siguiente, aunque, bueno, no se si estan todos de acuerdo... :) ¡Eso creo yo también! Es genial que se participe tanto, porque la verdad es que vuestras formas de hacerlo no se me hubieran ocurrido. :D Voy a crear el segundo reto. DoEvents! :P Título: Re: [RETO] Proyect Euler 1 Publicado por: LeandroA en 24 Enero 2013, 19:39 pm Bueno esta es la mía, pero solo responde el enunciado de la pagina no tiene mas opciones.
Código
Título: Re: [RETO] Proyect Euler 1 Publicado por: rob1104 en 24 Enero 2013, 22:28 pm Va el mio, seguro gano al mas lento ;D
Código
Saludos!!! Título: Re: [RETO] Proyect Euler 1 Publicado por: imoen en 25 Enero 2013, 12:32 pm HOla
Rob1104 , tu codigo es lo mas normal , y no es el mas lento me gusta por que es clarito simple y funcional LeandroA, siento decirte que tu código es el mas lento de todo, o al menos eso creo , pq recorres el campo de datos 2 veces , aunque vallas haciendo los saltos de 3 y 5 ademas que los bucles for son quizá los mas lentos , eso combinado con que calculas el modulo te ponen en el codigo mas lento. Una cosa el código sea lento no significa que sea el peor , pq insisto en que los códigos deben ser legibles y entendibles por cualquiera , un codigo muy veloz pero ofuscado tampoco es rentable a pesar de ser muy rapido pero bueno , que esta muy bien que haya de todo :) bs imoen Título: Re: [RETO] Proyect Euler 1 Publicado por: Psyke1 en 25 Enero 2013, 12:42 pm Cierto, pero en estos retos se trata de exprimir al máximo la velocidad. Es indiferente que no sea bonito (en este caso en concreto).
Vale todo. ;) DoEvents! :P Título: Re: [RETO] Proyect Euler 1 Publicado por: imoen en 25 Enero 2013, 12:46 pm Pues te lanzo la version del reto 1.1
Como hay que hacerlo rapido , y di distribuyes cada calculo de busqueda los 3 por un lado y los 5 por el otro , peroo cada bloque aun core distinto del procesador :P ( tambien me sirve si haces dos hilos y ejecutas los hilos a la vez ) uhh , en el caso de no haber cores pero tener HT pues es lo mismo, lo que no se es si VB6 permite el balanceo de carga por nucleos :P bs imoen PD -> como lo flipo ehh XDDD Título: Re: [RETO] Proyect Euler 1 Publicado por: MCKSys Argentina en 25 Enero 2013, 20:48 pm En este caso, para mejorar la velocidad, solo tuve que analizar el problema, plantear diferentes ideas y usar matematica. Por lo que veo, BlackZeroX hizo lo mismo.
Recuerda que el procesador mas poderoso del planeta esta sobre tus hombros y es el UNICO que funciona mejor mientras MAS lo usas. ;) Saludos! Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 25 Enero 2013, 23:20 pm Una cosa el código sea lento no significa que sea el peor , pq insisto en que los códigos deben ser legibles y entendibles por cualquiera , un codigo muy veloz pero ofuscado tampoco es rentable a pesar de ser muy rapido pero bueno , que esta muy bien que haya de todo :) Los análisis matemáticos para no dejarle la carga a el CPU no es igual a ofuscar el código... de hecho cuando se tienen limitan-tes como en los PICS se deben usar mucho las matemáticas de cualquier índole. Pues te lanzo la version del reto 1.1 Como hay que hacerlo rapido , y di distribuyes cada calculo de busqueda los 3 por un lado y los 5 por el otro , peroo cada bloque aun core distinto del procesador :P ( tambien me sirve si haces dos hilos y ejecutas los hilos a la vez ) uhh , en el caso de no haber cores pero tener HT pues es lo mismo, lo que no se es si VB6 permite el balanceo de carga por nucleos :P bs imoen PD -> como lo flipo ehh XDDD Los hilos y balanceo por núcleo es inestable en VB6... sin en cambio solo son llamadas a APIS. El código en C se parecería algo así... en VB6 sería prácticamente lo mismo. Código
Aun así este proceso es MUY LENTO cuando ya se a generado una formula matemática a lápiz y papel la cual es la mas optima posible. P.D.: Los programadores estamos muchos años atrasados en la tecnología debido a que SIEMPRE le dejamos el trabajo pesado al hardware... Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: imoen en 25 Enero 2013, 23:50 pm Hola
he estado investigando un poco sobre VB6 y aunque no tiene exactamente de forma nativa el uso de nucleos si que se puede hacer algun apaño os dejo un link ;http://www.svcommunity.org/forum/vb/threads-o-hilos-en-vb6-0/ Claro en C si hay mas opciones , y estamos seguros que distribuir la carga a cada core es mas lento que la formulita matematica ?¿ bs imoen Título: Re: [RETO] Proyect Euler 1 Publicado por: BlackZeroX en 25 Enero 2013, 23:53 pm y estamos seguros que distribuir la carga a cada core es mas lento que la formulita matematica ?¿ Has un benchmark EN CUALQUIER LENGUAJE y nos cuentas. Dulces Lunas!¡. Título: Re: [RETO] Proyect Euler 1 Publicado por: LeandroA en 26 Enero 2013, 10:44 am LeandroA, siento decirte que tu código es el mas lento de todo, o al menos eso creo , pq recorres el campo de datos 2 veces , aunque vallas haciendo los saltos de 3 y 5 ademas que los bucles for son quizá los mas lentos , eso combinado con que calculas el modulo te ponen en el codigo mas lento. Te equivocas, es uno de los mas rápidos dentro de los que usan bucles, pero reconozco que es una suerte de mentira ya que no no podría usar otro numero que no sea 1000 (al menos eso creo). eso si ni se acerca a la de MCKSys Argentina y a la V3 de BlackZeroX Citar Tiempo BlackZeroX V2 951,788 msec Resultado BlackZeroX V2 233168 Tiempo BlackZeroX V1 1.537,512 msec Resultado BlackZeroX V1 233168 Tiempo 7913 6.466,132 msec Resultado 7913 233168 Tiempo dany 6.169,530 msec Resultado dany 233168 Tiempo Spyke1 3.692,984 msec Resultado Spyke1 233168 Tiempo Argentina 60,390 msec Resultado Argentina 233168 Tiempo LeandroA 1.336,028 msec Resultado LeandroA 233168 Tiempo BlackZeroX V3 53,147 msec Resultado BlackZeroX V3 233168 Saludos. Título: Re: [RETO] Proyect Euler 1 Publicado por: imoen en 26 Enero 2013, 11:20 am LEandro
Acabas de convertirte en testeador oficial del proyecto xDDDDDDDDDDD, yo te nombrbo in nomime patre et filium XDDD, puedes retocar el code para que ordene del mas rápido al mas lento , y ya eres el testeador oficial del reto xDD Uh , por una lado tiene suerte pq a 1000 es div by 5 , entoces vale step 5 en el for , y tambien en el 3 step 3 , pero si fuera efectivamente 1001 ya no valdria xD bs imoen |