¡Emite la misma longitud de Lorem ipsum que tu código!
Reglas:
- El código no puede ser idéntico a la salida
- No hay bibliotecas de compresión.
- Programa más corto en dos semanas gana
- No uso de la red, la lectura de archivos y otros trucos que, con una facilidad podría resolver cualquier problema de código de golf (con
eval
,exec
, etc.)
Ejemplo
Your code with length 25.
Salida
Lorem ipsum dolor sit ame
code-golf
string
compression
self-referential
randomra
fuente
fuente
Respuestas:
GolfScript (122 o 138 bytes)
Parece haber una ambigüedad muy pequeña en las reglas: ¿qué significa exactamente "salida"? Muchos programas suponen que la "salida" de un programa no incluye una nueva línea final, que está ahí para garantizar que la siguiente línea de la entrada del shell comience en una línea separada.
tiene 122 bytes y genera 122 bytes de lorum ipsum y una nueva línea final.
es de 138 bytes y produce 138 bytes de lorum ipsum sin nueva línea final.
fuente
rot13 (1)
Me sorprende que a nadie se le ocurriera esto antes :)
y como extra, una solución perl muy simple
Perl (252)
fuente
...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
very simple perl solution
más.Golfscript - 161
Editar: la solución de Python genera una longitud diferente a la suya, así que hice una mejor con golfscript. Esta es también mi primera respuesta de golfscript.
No estoy seguro de cómo se codifica esto aquí, así que aquí hay un enlace al archivo.
fuente
Python 2 - 332
Si a alguien le importa, aquí hay una lista parcial de mejoras:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332
fuente
Mathematica, 8
Supongo que una salida visualmente idéntica es aceptable. Por lo tanto, uso este carácter en lugar de ASCII "i", lo que hace que los dos símbolos se ordenen automáticamente en el orden correcto:
fuente
Bash, 156
Debido a que está prohibido usar una "biblioteca de compresión" real,
base64
en su lugar abusaré de coreutils. (xxd -r
para decodificar la presentación)Generé el código anterior usando este programa PHP:
fuente
cat $0
.Mathematica
4746No estoy seguro si esto es juego limpio. Mathematica tiene el texto 'completo' de Lorem ipsum en sus datos de ejemplo. Lo siguiente simplemente le dice a Mathematica que tome una cadena de una longitud particular del ejemplo incorporado de Lorem Ipsum.
Editar :
Original :
fuente
PHP, 75 (dinámico)
Salida de ejemplo:
No usa compresión, pero sí dobla las reglas. Mucho.
Puede agregar caracteres basura al final del ejemplo y aún tener la salida correcta (hasta 2k + caracteres).
PHP, 59 (estático)
Igual que el anterior, pero usa un tamaño fijo y será incorrecto si se agregan caracteres adicionales.
fuente
Lote de Windows,
878720Probado en Windows XP y Windows 7, pero debería funcionar para cada cmd con extensiones (IIRC, Windows NT y posterior).
Tiene que ejecutarse usando
CMD /V:ON /C batchfile
para activar la extensión variable retrasada, pero prefiero eso que no sea compatible con codegolfSETLOCAL EnableDelayedExpansion
dentro del archivo por lotes.fuente
J (144)
Hubiera sido 128 si no hubiera necesitado convertirlo en un script adecuado para que pueda medir la salida.
Cómo funciona: solo hay 23 caracteres únicos en el texto, por lo que esto se puede representar en una codificación de 5 bytes. Los caracteres en la cadena codificada se convierten en sus números ASCII (
a.i.
), luego cada uno de los números se convierte en su representación de base 2 (#:
), luego los bits se agrupan en grupos de cinco (_5>\,
), luego cada uno de estos grupos se convierte a su valor (#.
), y estos se utilizan como un índice en la tabla de búsqueda. ({~
)La tabla de búsqueda realmente necesitaba algunos ajustes, porque un literal de cadena J no puede contener
\n
,\r
o\0
.Hexdump:
fuente
('VLI., ',97}.a.)
de alguna manera no estropea el otro literal.