| ||||
Respuesta: Reto: Números Romanos es q no sabemos q paso con morti xq el siempre esta conectado en el foro hay q ver q es el tiempo de el tambien pero vamos a esperar un poco
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| ||||
Respuesta: Reto: Números Romanos Hola bueno, veo que andan impacientes, hasta me hicieron millonario!! pues es que me tome molestias de más en las pruebas, por eso la demora, pero ya mismo pongo un tema con todos los códigos y finalmente les posteo mis comentarios aca saludos
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente." Visita piggypon.com |
| ||||
Respuesta: Reto: Números Romanos estas vivo???? los comentarios haslos en los codigos si los vas a hacer
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| |||
Respuesta: Reto: Números Romanos vamos con esos codigosssss... luego agregale una encuesta y los tiempos de ejecucion de cada 1 *o* |
| |||
Respuesta: Reto: Números Romanos hey morti.. es solo el segundo no necesitas postear el mio 2 veces XD! |
| ||||
Respuesta: Reto: Números Romanos q barbaro de pana como lo hiziste tan cortico?? de pana me falta q jod por aprender pero bueno
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| |||
Respuesta: Reto: Números Romanos no es tan diferente de el de abilmaerc.. aunque morti duplico mi codigo -.-! |
| ||||
Respuesta: Reto: Números Romanos bueno en algo son xq el tuyo segun yo contando el q duplico son 13 lineas yo me tire el triple de eso jajaja pero bue y morti faltan los tiempos de ejecucion aunq el mas lento sea el mio jajaja
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| ||||
Respuesta: Reto: Números Romanos Saludos Pues he terminado de realizar las pruebas, y a continuación encuentran los códigos en este tema y aquí mis comentarios (perdonarán lo incoherente a veces, pero pues productos de algunos delirios literarios) encontraran que los tiempos estan algo extensos, es porque todos los probe hasta 10.000 para dar esos tiempos Hidek1, excusame, abri los archivos y copie y pegue, y ya no me deja editar el post!!! ************************************************** ************ Conversión hasta 3.999 Alcalina T = 1.98 26 líneas Bastante ingenioso el modo en que se maneja la iteración de letras repetitivas, y este es el único código que inmiscuye al cero, que según entiendo no existía en el sistema romano, y que luego lo conocieron gracias a los árabes, pero por ese aporte me dió por investigar un poco más sobre los números romanos, y dí con este interesante artículo, lo dejo por si alguno quiere "datearse" un poco. dedydamy T = 1.93 21 líneas Mi comentario aquí es tan corto y sustancioso como el código Es otro código que seguro será de gusto de los matemáticos, también apasionara a los que gustan de códigos cortos, y vemos uso de mod, y un modo abreviado y refrescante a la vista de uso de arrays exangel T = 1.93 113 líneas Podemos apreciar que el código venía con el ingreso del número en formulario y posterior muestra de la conversión y validaciones de valor numérico Igualmente, se aprecia una estructura bastante compleja de if anidados la cual me hizo recordar a los contemporáneos de los romanos (los griegos) y su laberinto de Creta, y me sentí como aquel desolado Minotauro Hidek1 T = 1.71 12 líneas (envió 2 funciones pero ambas con el mismo número de líneas) Aquí vemos el manejo de un solo ciclo, lo que indudablemente hace que este código aparte de ser bastante corto sea igualmente bastante raudo en su ejecución También usa los tan controvertidos operadores de preincremento, que confunden a muchos que prefieren las clásicas formulas aritméticas, y que otros aseveran funcionan intermitentemente pateketrueke T = 1.87 33 líneas (envió 2 funciones pero solo la segunda se dio para la competencia) Pues fiel a sus principios, nos brinda un código bastante corto, sútil y efectivo, aunque me encantaría entender mejor la función que no participó, pues la veo más interesante, aunque probandola siempre me devolvía 0 (y yo estaba haciendo uso de la misma funcionalidad de regex, he!! por fin algo!!) portalmana T = 1.77 74 líneas Otra clase, pero esta abstracta (eso lo asocio con arte, pinturas y eso), y que esta bastante documentada (otros códigos también estaban documentados, pero este en especial tiene bastante de eso) y por eso me atrevo a preguntar si se esta usando un editor en particular que tal vez coopere para agregar documentación al código, o alguna herramienta para ello una distribución curiosa visualmente para los arrays, y uso de la abstracción producto de la clase, al igual que el log10, y operaciones reducidas sin embargo, con un inconveniente cuando llega al 4000 (warning de división por 0), lo cual hizo recordarme a un profesor de matemáticas que parecía más un profeta de los números pues siempre decía: "El primer mandamiento de las matemáticas es: Nunca dividirás por cero" quike88 T = 1.87 32 líneas En esta función se ve el uso de isset y floor, que los demás códigos hasta donde recuerdo en este momento no usan (me excusan si me equivoco) Y también, se nota el uso de operaciones matemáticas para asignar una posición de array, algo que generalmente se hace asignando a una variable el resuldato de la operación antes o incluso se asigna la posición estaticamente, pero no de este modo silvanha T = 1.48 23 líneas Aquí vemos también un modo bastante abreviado del uso de arrays, y saludamos a su majestad el SWITCH dando un F5 al uso del IF y el uso de split, es altamente estimulante este código.... que buen café consumiste.... truman_truman T = 1.96 87 líneas Encontramos aquí el uso de varias funciones para el cometido, sobre todo una bastante "descrestante" que lo hace sorprendente, y es la idea de invertir la cadena También se ve el uso de un solo ciclo y el no uso de condicionales!!! si Triby nos dio un sueño, este código parece el logro de cualquier programador que vaya con: ¡¡Prohibido prohibir!! ************************************************** ************ Conversión hasta 9.999 angelAparicio T = 1.94 38 líneas Coincide en el estilo de css con el que brindo abimaelrc, y aqui vemos que se propone el uso de constantes, e igualmente propone una manera más matemática de tomar el asunto, y nos muestra el principio de "divide y vencerás" en el uso de arrays, para aquellos que van más con los cálculos seguro este código les gustara bastante ************************************************** ************ Conversión hasta 10.000 Triby T = 1.98 27 líneas Tenemos aquí la muestra de otra opción distinta de css a las que se han manejado en otros códigos, y que funciona igualmente validaciones que entran al rango que se habia estipulado, y el uso de un solo ciclo y un par de if hacen que este sea un código soñado, sacado de un cuento de programadores?? jajajaja sin embargo, le salió un pequeño "lunar" mostrando la serie del 4000, y es que como se asigno en el array la "V" sin la linea horizontal, pues a la hora de la presentación no coincide con la salida esperada, pero luego del 5.000 hasta el 10.000 se visualiza correctamente y como nota interesante, notese que no tiene tag de cierre "formal", sino el EOF que nos indica la finalización del script, esto es altamente recomendado incluso por algunos frameworks!! ************************************************** ************ Conversión hasta 999.999 abimaelrc T = 2.17 70 líneas El estilo css que se manejo para la nomenclatura de miles en adelante es interesante pues tenía como base el css de Triby, pero al comparar las cadenas daba "FAIL" aunque la salida estaba correcta, y era porque los estilos no coincidian!!! Al igual que Alcalina, ingenioso para la iteración de letras repetitivas, pero aquí vemos el manejo magistral de arrays, en sintesis, un deleite para quienes gustan de jugar con los arrays. ************************************************** ************ Conversión hasta 3'999.999 carlos_belisario T = 1.96 39 líneas Coincide igualmente con el estilo css de otros, pero aunque visualmente daba el resultado correcto, se veía el mensaje FAIL, cosa que al principio no entendia porque ocurria, y confieso que me llevo un rato darme cuenta cual era el inconveniente, y era simplemente el uso de las comillas dobles y sencillas!! es bastante extraño para mí pero así es!! otros códigos usaban comilla sencilla para encerrar el span y dentro usaban dobles (como yo también lo tenía en el archivo de test), pero aquí era al contrario, y esa pequeña diferencia al parecer es suficiente para que php dictamine que las cadenas no son las mismas (que estricto!!!), pero cambiando el orden de comillas, da el ansiado OK, y vemos el uso de una estructura de anidamiento soberbia que cumple a cabalidad el cometido HackmanC T = 2.01 86 líneas Aquí se aprecia una clase sumamente corta e interesante, uso de expresiones regulares y formato para el valor ingresado, y no contento con eso, agrega las propiedades css adicionales que complementan deliciosamente al objeto instanciado Sin duda un banquete para quienes buscan código corto y los que gustan de tener varias funciones que puedan ser cooperativas entre sí ************************************************** ************ Conversión intermitente del 1 al 9 ok del 10 al 19 fail del 20 al 109 ok del 110 al 119 ok del 120 a 199 ok y con varias intermitencias mortiprogramador T = 2.11 133 líneas Finalmente, el código mas bizarro que he realizado, pensando en una idea loca, en efecto me llevo a la locura, y producto de esto se da un código que parece un dragón dando vueltas por todo el barrio chino y que decir de los resultados!! un ejemplo clarisimo de como se pierde la noción de algo por andar pensando en quien sabe que!! ************************************************** ***** Estos son mis apuntes al respecto, agradezco a todos en el tiempo que se pusieron a esto y la paciencia de obtener los resultados, pondre un post adicional pues no alcanzaron los caracteres en este!
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente." Visita piggypon.com |
| ||||
Respuesta: Reto: Números Romanos Cita: no lo sabia jaja siempre me tiene q aparecer un error jajaja bueno gracias por el dato lo desde ahora estare pendiente de colocarlo asi fue bueno y bueno otro aprendizaje mas se veía el mensaje FAIL, y era simplemente el uso de las comillas dobles y sencillas!! es bastante extraño para mí pero así es!! otros códigos usaban comilla sencilla para encerrar el span y dentro usaban dobles (como yo también lo tenía en el archivo de test), pero aquí era al contrario, y esa pequeña diferencia al parecer es suficiente para que php dictamine que las cadenas no son las mismas (que estricto!!!), pero cambiando el orden de comillas, da el ansiado OK,
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| ||||
Respuesta: Reto: Números Romanos Por alcance Cita: Por velocidadcarlos_belisario 3'999.999 HackmanC 3'999.999 abimaelrc 999.999 Triby 10.000 angelAparicio 9.999 Alcalina 3.999 dedydamy 3.999 exangel 3.999 Hidek1 3.999 pateketrueke 3.999 portalmana 3.999 quike88 3.999 silvanha 3.999 truman_truman 3.999 mortiprogramador intermitente Cita: Por líneassilvanha 1.48 Hidek1 1.71 portalmana 1.77 pateketrueke 1.87 quike88 1.87 dedydamy 1.93 exangel 1.93 angelAparicio 1.94 truman_truman 1.96 carlos_belisario 1.96 Alcalina 1.98 Triby 1.98 HackmanC 2.01 mortiprogramador 2.11 abimaelrc 2.17 Cita: Como nota final, creo que a muchos romanos les debio haber pasado lo que en algunos códigos ocurria, y era que por ej para el 5.000 lo mostraban con 5 letras M en vez de la V con la línea, ellos seguramente si nos hubiesen hecho Hidek1 12 dedydamy 21 silvanha 23 Alcalina 26 Triby 27 quike88 32 pateketrueke 33 angelAparicio 38 carlos_belisario 39 abimaelrc 70 portalmana 74 HackmanC 86 truman_truman 87 exangel 113 mortiprogramador 133 millonarios al ver semejante solución a su sistema numérico si algún comentario incomodo a cualquiera, por favor, disculpen, fue sin la menor intención, solo son apuntes locos que vienen a mi mente, así que como diría Benedetti "No alerte sus fusiles ni piense qué delirio a pesar de la veta o talvez porque existe usted puede contar conmigo" Saludos a todos, monstruos del código Chau
__________________ "Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente." Visita piggypon.com |
| ||||
Respuesta: Reto: Números Romanos exelente el reto estuvo buenisimo y a participacion fue tambien buena ojala se den otros y participemos mas saludos buenos los comentarios saludos
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| ||||
Respuesta: Reto: Números Romanos Por si acaso, mi código no es 70 líneas, si quitas los comentarios claro está. Podía prepararlo igual que Hidek1, pero me gusta que sea legible. Cuando vi el de Hidek1, vi que era bastante similar al que preparé, pero sintetizado y la diferencia mayor es que yo hago dos ciclos, él lo logró en uno solo . Bueno buen código a todo el mundo. Vamos para el reto ahora de GD
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
Respuesta: Reto: Números Romanos Hola a todos.... Bueno MortiProgramador con respecto a tu interrogante para la programación utilizo NetBeans 6.9.1 para php.... jejejej Bueno la división por cero ejejjej es porque leí en algún comentario del foro que no era necesario la validación de datos..... simplemente por eso incluso no cumplí con los errores estrictos aunque se cuales son jejjeje Hice unas pruebas usando el codigo: Código PHP: Bueno aunque en el 2 do y 3 er puesto aveces se daban vueltas.... Repeti 5 Veces la prueba y tome el promedio
Código:
Bueno en otro punto coincido con abimaelrc me gustan los códigos super legibles...Portalmana 0,0602069377899 0,0596585909526 0,0590106248856 0,0590343952179 0,0590892791748 Promedio: 0,0593999656042 Hidek1 Func 2 0,0666384935379 0,0666834513346 0,0633374452591 0,0631870269775 0,0634858051936 Promedio:0,0646664444605 Truman_Truman 0,0718663454056 0,0715202808380 0,0730316321055 0,0708043972651 0,0732625802358 Promedio: 0,0720970471700 Hidek1 Func 1 0,0864998579025 0,0774790445964 0,0780956188838 0,0778410673141 0,0782234589259 Promedio: 0,0796278095245 quike88 0,1005898237230 0,0997510830561 0,0989421367645 0,1004654884340 0,0991286913554 Promedio: 0,0997754446666 silvanha 0,1108955939610 0,1088413556420 0,1104197661080 0,1105817953750 0,1093537727990 Promedio: 0,1100184567770 dedydamy 0,1143814166390 0,1142668406170 0,1146225372950 0,1146225372950 0,1131694078450 Promedio: 0,1142125479382 pateketrueke 0,1315964698790 0,1331186850870 0,1382720549900 0,1325357278190 0,1309441169100 Promedio: 0,1332934109370 Triby 0,1328143914540 0,1362112124760 0,1385475317640 0,1317312161130 0,1315052429840 Promedio: 0,1341619189582 exangel 0,1547385215760 0,1512603362400 0,1527578115460 0,1504278739290 0,1512359142300 Promedio: 0,1520840915042 Alcalina 0,1690651973090 0,1705047210060 0,1718923250830 0,1718923250830 0,1719164371490 Promedio: 0,1710542011260 carlos_belisario 0,1746670087180 0,1776582558950 0,1800858497620 0,1800858497620 0,1740900119150 Promedio: 0,1773173952104 AngelAparicio 0,1969074885050 0,1943507989250 0,1983195145920 0,1956112305320 0,1963031371430 Promedio: 0,1962984339394 abimaelrc 0,2467367569610 0,2470463514330 0,2461739619570 0,2482863744100 0,2412515481310 Promedio: 0,2458989985784 HackmanC 0,3192715485890 0,3096469481790 0,4616393089290 0,3167582352960 0,3186118761700 Promedio: 0,3451855834326 Mortiprogramador 0,7672072410580 0,7614544232690 0,7624504804610 0,7599871238070 0,7700856765110 Promedio: 0,7642369890212 Saludos |
| |||
Respuesta: Reto: Números Romanos Cita: claro... yo tambie me fije que eran parecidos los algoritmos..
Iniciado por abimaelrc Por si acaso, mi código no es 70 líneas, si quitas los comentarios claro está. Podía prepararlo igual que Hidek1, pero me gusta que sea legible. Cuando vi el de Hidek1, vi que era bastante similar al que preparé, pero sintetizado y la diferencia mayor es que yo hago dos ciclos, él lo logró en uno solo . Bueno buen código a todo el mundo. Vamos para el reto ahora de GD intenta ver de que forma logre el bucle es lo que mas me gusto de esto =) en general todos muy buenos, al igual que distintos. por lo personal encontre muy interesante el de portalmana .. y ( felicitaciones && gracias ) mortiprogramador por tu esfuerzo y tiempo que le dedicaste a esto ;D.. te quedo muy bueno todo ;) (menos mi codigo que lo pusiste 2 veces xD!!!!! ) |
| ||||
Respuesta: Reto: Números Romanos disculpa la ignorancia hidek1 pero Código PHP:
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| ||||
Respuesta: Reto: Números Romanos Bueno fundamento mis votos: Como regla general, me gustan los códigos que contengan la menor cantidad de if y que sean legibles pero como verán, en algunos votos obvie la regla.... Hidek1 Se nota que le gustan los códigos cortos, me sorprendió lo corto y pareces un rey del ocultismo es casi como ofuscar código... silvanha Si bien no tiene if, pero contiene switch que es parecido me encanto esa forma de resolver el problema .... creo que nunca se me hubiera ocurrido hacerlo asi.... truman_truman Bueno cumple con las premisas que me gustan a mi, no if, y se lee muy bien... portalmana Y por ultimo el mio jejjeje no me iba a dejar afuera.... En general me gustaron todos pero destaque esos algunos por ser formas muy distintas de programar a la mía, y bueno es así tantos códigos diferentes como programadores existen.... Increíble pero cierto... |
| ||||
Respuesta: Reto: Números Romanos @portalmana, bueno el de Hidek1 son if pero resumidos . @Hidek1, Vi como lo lograste y lo entiendo. Breve explicación $n toma los impares y de acuerdo a donde está el dígito, si es el primero 1 si es en las decenas en el 3, centengas 5 y milésimas 7, para luego jugar con los operadores ternarios. $r toma el último valor (una forma sencilla de tomar el último valor, algo como substr pero usando el módulo, tomo nota ). Y con la combinación de la división que haces en el for tomas bien fácil el valor, porque la forma como usaste el módulo toma valores enteros y en específico el valor de 10 o menos, por lo tanto el último. Por último múltiples operadores ternarios, que es bien similar a los if que hice y que la explicación la tengo en mi código. Edito: @carlos_belisario, eso es dividir, se conoce como operadores combinados. Lee este material http://www.php.net/manual/en/languag...assignment.php
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos Última edición por abimaelrc; 21/08/2010 a las 00:15 |
| ||||
Respuesta: Reto: Números Romanos Cita: Si es el operador ternario , pero dije que iban excepciones jajaajaajjj
Iniciado por abimaelrc @portalmana, bueno el de Hidek1 son if pero resumidos . @Hidek1, Vi como lo lograste y lo entiendo. Breve explicación $n toma los impares y de acuerdo a donde está el dígito, si es el primero 1 si es en las decenas en el 3, centengas 5 y milésimas 5. $r toma el último valor (una forma sencilla de tomar el último valor, algo como substr pero usando el módulo, tomo nota ). Y con la combinación de la división que haces en el for tomas bien fácil el valor, porque la forma como usaste el módulo toma valores enteros y en específico el último. Por último múltiples operadores ternarios. Que la explicación la tengo en mi código. aunque no es mi estilo, aunque por su nick se ve que le encanta... Saludos |
| |||
Respuesta: Reto: Números Romanos :) bueno yo adverti que parecia chino mandarin mi codigo x'D!... aún asi aplique unas cuantas cosas que sirven como tips :P el bucle for por ejemplo ;(int)$numero;$numero/=10 ahi vas dividiendo por 10 el numero... entonces en cada vuelta vas obteniendo algo asi 1570 157 15 1 y luego de eso se detiene por que deja ed ser valido para (int) bueno y cosas asi.. tambien esta interesante lo de tomar el ultimo numero ;) en general hay muy buenos trabajos ... mañana (ahora no pq estoy que me desmayo del sueño) voy a revisarlos detalladamente todos para ver si pillo cosas interesantes para agregar a mi libreria de los robos de idea x'D! saludos a todos . |
| ||||
Respuesta: Reto: Números Romanos Hidek1, muy buen trabajo compañero :D
__________________ http://dedydamy.com/ |
| ||||
Respuesta: Reto: Números Romanos pues claroo. si presento mi codigo sin comentarios ni espacios es obvio que tendrá menos lines....
Código PHP:
Ver original
__________________ la la la |
| ||||
Respuesta: Reto: Números Romanos Y claro Truman_truman, medir por lineas un programa no seria lo correcto, jejejj de ultima si quieres tomarte el trabajo midelo por caracteres... Pues es obvio que quien identa el código y sigue estándares de codificación tendrá un código mas largo siempre, o casi siempre jejjejej Igual el mio no compite en codigo corto... Saludos Y tus pruebas de velocidad como te dieron |
| ||||
Respuesta: Reto: Números Romanos Cita: bueno, a esto... precisamente es la función inversa, osea el argumento no es un entero... sino un string con el numero romano, ej. numberRoman('MMXII')Edito: precisamente ya había propuesto una función basada en Reflection para contabilizar los caracteres de cierta función, si buscan en el tema original de competencias php ahí debería seguir la función...
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| ||||
Respuesta: Reto: Números Romanos Cita: La velocidad me dió bastante bien, es como vos pusiste mas arriba
Iniciado por portalmana Y claro Truman_truman, medir por lineas un programa no seria lo correcto, jejejj de ultima si quieres tomarte el trabajo midelo por caracteres... Pues es obvio que quien identa el código y sigue estándares de codificación tendrá un código mas largo siempre, o casi siempre jejjejej Igual el mio no compite en codigo corto... Saludos Y tus pruebas de velocidad como te dieron
__________________ la la la |
| ||||
Respuesta: Reto: Números Romanos Bueno, hice para truman_truman el código mas corto... Para ello no conté ni espacios es decir solo caracteres útiles digamos y elimine cualquier tipo de formulario o HTML que existiera en el codigo..... Lo único que los que hicieron CSS para mayores a 4.000 quedo pues forma parte del código serian de otra categoría... También fueron eliminados los tags php de apertura y clausura... Los Resultados: Hidek1 Func 1 = 244 Hidek1 Func 2 = 250 pateketrueke = 291 Alcalina = 388 quike88 = 561 silvanha = 599 Truman_Truman = 605 Triby = 619 Portalmana = 636 HackmanC = 745 AngelAparicio = 812 dedydamy = 832 abimaelrc = 955 carlos_belisario = 1016 exangel = 1821 Mortiprogramador= 2644 |
| ||||
Respuesta: Reto: Números Romanos A mi lo que mas me intereza es saber si mi forma de programar, es válida, ya que mi aprendizaje es completamente autodidacta (como la mayoría) y al no tener un profesor que me guíe no sé si lo que hago es válido, osea me siento en el aire, lo hago todo a mi manera y con limites de mi conocimiento. Eso es lo que me gustaría saber, si voy por buen camino o voy directo al fracaso jeje...
__________________ la la la |
Etiquetas: |