Ver Mensaje Individual
  #191 (permalink)  
Antiguo 20/08/2010, 21:40
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
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