Su desafío es crear un código más corto en el idioma de su elección que escriba en un .txt
archivo el código más largo para multiplicar dos números tomando dos números como entrada y salida de la respuesta .
¡NO SE NECESITA ENTRADA EN SU CÓDIGO QUE ESTÁ HACIENDO EL TRABAJO DE ESCRITURA !
El código generador y el código generado pueden estar en cualquier idioma
NO use series o progresiones ilimitadas para agrandar el archivo de texto.
NO use declaraciones innecesarias para aumentar el puntaje.
PUNTUACIÓN
( size of text file generated in bytes ) (without any unnecessary white spaces, tabs or newlines)
-----------------------------------------
( size of your code in bytes )
Ganador
El ganador será elegido después de 1 semana a partir de ahora con la puntuación más alta .
EDITAR: el rango de entrada en el código que multiplica dos números debe estar entre -32768 y 32767
code-challenge
Mukul Kumar
fuente
fuente
+
a*
en el programa generador que proporciona, y probablemente ya lo sepas, ya que también respondiste esa pregunta.Respuestas:
perl / perl, puntaje ilimitado bajo la regla original con rango ilimitado
Aquí hay un código que no gana:
La salida tiene esta forma:
el archivo de salida tiene una longitud de 181030 bytes, pero después de eliminar espacios y líneas nuevas, solo tiene 133109 bytes. entonces, el puntaje es 133109/248 = 536.7289 ...
Aquí hay otro código que no gana: es el mismo programa, excepto las primeras 2 líneas:
el archivo de salida tiene una longitud de 718138 bytes, pero después de eliminar espacios y líneas nuevas, solo tiene 532233 bytes. entonces, el puntaje es 532233/248 = ~ 2146. ¡mejor! usando 7 produce un puntaje de ~ 8750, 8 rinde ~ 35347, 9 rinde ~ 149129, 10 rinde 151100000 sin espacio / 250 = 604,400 ...
por supuesto que podemos hacer esto todo el tiempo que queramos. el tamaño del programa fuente, n, aumentará a medida que O (log (n)). El tamaño del programa de salida es O (2 * n). El límite de 2 * n / log (n) cuando n va al infinito es claramente infinito, así que si solo sustituyo en mi gran número favorito, un googolplex, gano (hasta que alguien sugiera googolplex + 1).
fuente
add
que toma dos parámetros. Luego llena esa función con declaraciones de retorno parecidasreturn 39 if ($i == 13) && ($j == 3);
, utilizando todos los valores de$l
a$h
para$i
y$j
. Flexión de Smartass de la regla de "solo declaraciones innecesarias".C, 27297/245 = 111,4
Código fuente (245 bytes)
Cuando se compila y ejecuta con dos argumentos enteros en la línea de comando, esto genera otro archivo C que contiene el código necesario para calcular su producto, y lo compila con el
-E
indicador. Este indicador especifica que el compilador debe detenerse después de la etapa de preprocesamiento y generar el código fuente procesado (que incluirá todo el contenido destdio.h
ystdlib.h
).Archivo de salida (27297 bytes)
********* LINES 13-1273 OMITTED *********
Resultado de ejecutar el código de salida
El archivo de salida se guarda como
add.c
, que se puede compilar y ejecutar normalmente:fuente
perl, 125 caracteres, puntaje 1,630,326,497.312
El mismo enfoque básico que mi otra respuesta, pero esta vez limitado entre -32768 y 32767 según las reglas actualizadas, y todos los espacios en blanco innecesarios se eliminan por completo:
El programa de salida comienza así:
y termina:
El programa de salida tiene 190 GB de longitud. Más precisamente, 203790812164 bytes. Puntuación = 203790812164/125 = 1630326497.312
fuente
Script de comandos de Windows: ~ 1,000,000,000 pts
Código: 158 bytes
Salida: ~ 158000000000 bytes
El resultado consiste básicamente en:
fuente