El 25 de marzo de 1821, Grecia libró su gran guerra de independencia . Para honrar esto, su tarea es imprimir el himno nacional griego:
Σε γνωρίζω από την κόψη
του σπαθιού την τρομερή.
Σε γνωρίζω από την όψη
που με βιά μετράει τη γη.
Απ' τα κόκκαλα βγαλμένη,
των Ελλήνων τα ιερά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Esta es mi propia versión del himno (puntuación, mayúsculas), aunque las letras son las originales.
- Está prohibido imprimir o devolver este texto, por si acaso.
- El texto impreso debe ser exactamente como el anterior, con una nueva línea final opcional.
- La salida debe estar en UTF-8, a menos que no sea compatible, en cuyo caso la salida debe estar codificada en la alternativa compatible más cercana.
code-golf
kolmogorov-complexity
unicode
Erik el Outgolfer
fuente
fuente
Σ
en ISO-8859-1, cuando se interpreta en UTF-8, esΣ
. ( Herramienta útil )Respuestas:
Jalea ,
180174163 bytesPruébalo en línea!
fuente
ṃ
...ṃ€
...ḃ
...) ... ¡Felicidades por la respuesta más corta (que merece más votos a favor)!Python 3 , 263 bytes
Pruébalo en línea!
Use la misma técnica de repetición que usó mbomb007 , pero reemplacé todos los caracteres superiores a 47 (todas las letras griegas), u913 ~ u974 con u48 ~ u109, y luego deshaga esto antes de imprimir
fuente
Java 7,
320319300294293 bytesPruébalo en línea!
Esto genera el himno con una nueva línea final. Convertí la función de devolver a
String
a avoid
para que imprimiera la Cadena en lugar de devolverla y guardar bytes.Jugarán más golf por la mañana Losgolfistas no duermen: PExplicación (obsoleta)
Para llegar a esta cadena reducida, verifiqué manualmente restando qué números de los puntos de código serían los mejores. Estos valores tendrían que estar entre
y
~
. Con el fin de hacer que la detección de si es un char puntuacion (.
,'
,!
,) o no, sería mejor si todos los valores mentido anteriormente
.
(46). Y no debería haber ninguna\
s en la Cadena porque, de lo contrario, Java cree que son secuencias de escape, por lo que tengo que escapar de ellas. Finalmente se me ocurrió restar 866 de los caracteres griegos.fuente
Python 3,
350345 bytesPruébalo en línea
fuente
sep
por -5 bytesLote de Windows 10,
424404 bytesNotas:
chcp
llamada falla si su símbolo del sistema está configurado para usar fuentes ráster. Cámbielos a, por ejemplo, Lucida Console (no requiere reinicio).chcp 65001
.Editar: Guardado 20 bytes gracias a @ ConorO'Brien.
fuente
@set t="Και σαν πρώτα ανδρειωμένη," "χαίρε ω χαίρε Λευτεριά!"
y reemplazar%t% %u%
con%t%
?Chicle , 190 bytes
Pruébalo en línea!
fuente
PowerShell ,
332270261 bytesPruébalo en línea!
Esto toma la cadena unida como una
char
matriz, la alimenta una a la vez a través de un bucle|%{...}
cada iteración, ya sea produciendo el carácter directamente$_
o incrementándolo870
antes de volver a emitirlo comochar
(según sea una puntuación o no). Algunos otros trucos se configuran$a
como una frase de repetición y eliminan el triple de las últimas tres estrofas. Esos son todos-join
juntos en una cadena completa y luego la salida es implícita.Editar - Woo! ¡Esta es la respuesta número 1100 de PowerShell en el sitio! :RE
fuente
Japt,
197196195 bytes¡Pruébelo en línea! Contiene tres bytes 0x95 que han sido reemplazados por
?
.fuente
/// ,
324323bytesPruébalo en línea!
Tal vez podría jugar más al golf, pero estoy cansado.
Funciona reemplazando caracteres como
k
con texto más largo. También hice algunas sustituciones de caracteres, porque los caracteres griegos tienen más bytes que los caracteres similaresp
. Suficientemente simple.-1 byte gracias a @ErictheOutgolfer.
fuente
ΛευτεPιά!/
, puede eliminarla para que la salida no tenga una nueva línea principal.Bash + GNU iconv, 214
Esto solo usa la
iconv
utilidad para convertir la codificación GRIEGA (byte por char) a utf-8, junto con la eliminación de un poco de redundancia almacenando repeticiones en variables.No intente copiar directamente de lo anterior: muchas imprenta no se imprimen al pegar. En su lugar, cree el script de la siguiente manera:
fuente
-f GREEK
no es obligatorio. El uso de un heredoc en lugar de una herejía ahorra un byte adicional.PHP, 296 bytes
PHP, 349 bytes
fuente
Python 2.7, 190 bytes
abuso de zlib Hexdump:
Como señala @Dennis, esto debe ejecutarse en un terminal para que produzca correctamente la salida UTF-8.
fuente
echo -ne '.encode("utf8")' >> code.py
línea en el medio resuelve el problema. No creo que confiar en un terminal UTF-8 sea una locura, pero si lo es, enmendaré la respuesta.Retina , 199 bytes
Pruébalo en línea!
Woohoo, poco menos de 200 bytes.
Explicación
La idea principal es evitar los caracteres Unicode reales en su mayor parte, porque simplemente explotan el recuento de bytes si se usan en cualquier lugar. En cambio, represento cada letra griega por una letra o dígito ASCII. Resulta que las letras relevantes de
Α
(eso es un alfa)ώ
abarcan exactamente 62 puntos de código. Eso es 10 + 26 + 26, el número de dígitos y letras ASCII. El otro personaje Unicode que tenemos es el¶
que Retina usa para representar los avances de línea. Podemos guardar algunos bytes más reemplazando eso con_
. Luego, la taquigrafíaw
en las etapas de transliteración contiene exactamente los 63 caracteres que hemos usado como sustituciones, y podemos representar el rango al que se asigna utilizando solo 3 caracteres de 2 bytes (¶
y los dos extremos del rango de letras griegas).Por lo tanto, el código es bastante ilegible en su mayor parte, ya que esta sustitución se realiza en la última etapa. Vamos a deshacer esto para darle un poco más de sentido al código:
Eso se parece un poco más a las cosas que queremos generar. La primera etapa simplemente configura el marco general. Contiene todas las partes únicas de la salida, así como algunos marcadores de posición más para partes repetidas:
:
representa la primera y tercera línea. Terminan siendo ligeramente diferentes, porqueκ
falta la tercera línea, por lo que la última etapa elimina la segundaκ
en el resultado.#
representa las dos últimas líneas, que se repiten tres veces.;
representa lo repetidoχαίρε
en esas líneas.=
representa una palabra que comienza conτ
(y el espacio que la precede). Hay simplemente bastante de los de este para salvar a un solo byte.fuente
Jolf, 187 bytes
Ser codificado en la página de códigos griega ayuda.
Pruébalo aquí! No entiendo nada...
fuente
Python 3 , 246 bytes
Pruébalo en línea!
Mi opinión sobre el enfoque de Rod .
fuente
Chicle ,
194187bytesPuedes revertir este hexdump con
xxd -r
.Gracias Dennis por redirigirme a Zopfli :)
fuente