Am 25. März 1821 führte Griechenland seinen großen Unabhängigkeitskrieg . Um dies zu würdigen, müssen Sie die griechische Nationalhymne drucken:
Σε γνωρίζω από την κόψη
του σπαθιού την τρομερή.
Σε γνωρίζω από την όψη
που με βιά μετράει τη γη.
Απ' τα κόκκαλα βγαλμένη,
των Ελλήνων τα ιερά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Dies ist meine eigene Version der Hymne (Interpunktion, Großschreibung), obwohl die Texte das Original sind.
- Alle integrierten Funktionen zum Drucken oder Zurückgeben dieses Textes sind für alle Fälle verboten.
- Der gedruckte Text muss genau wie oben sein, mit einem optionalen nachgestellten Zeilenumbruch.
- Die Ausgabe muss in UTF-8 sein, es sei denn, sie kann überhaupt nicht unterstützt werden. In diesem Fall muss die Ausgabe in der am nächsten unterstützten Alternative codiert werden.
code-golf
kolmogorov-complexity
unicode
Erik der Outgolfer
quelle
quelle
Σ
in ISO-8859-1, wenn in UTF-8 interpretiert, istΣ
. ( Nützliches Werkzeug )Antworten:
Gelee ,
180174163 BytesProbieren Sie es online aus!
quelle
ṃ
...ṃ€
...ḃ
...) ... Herzlichen Glückwunsch zur kürzesten Antwort (die mehr positive Stimmen verdient)!Python 3 , 263 Bytes
Probieren Sie es online aus!
Verwenden Sie dieselbe Wiederholungstechnik wie bei mbomb007 , aber ich habe alle Zeichen höher als 47 (alle griechischen Buchstaben), u913 ~ u974 durch u48 ~ u109 ersetzt und diese vor dem Drucken rückgängig gemacht
quelle
Java 7,
320319300294293 BytesProbieren Sie es online aus!
Dies gibt die Hymne mit einem nachgestellten Zeilenumbruch aus. Ich habe die Funktion von der Rückgabe von a
String
in a konvertiertvoid
, damit die Zeichenfolge gedruckt wird, anstatt sie zurückzugeben und Bytes zu speichern.Wird am Morgen weiter Golf spielenGolfer schlafen nicht: P.Erklärung (veraltet)
Um zu diesem reduzierten String zu gelangen, habe ich manuell überprüft, welche Zahlen von den Codepunkten am besten subtrahieren. Diese Werte müssten zwischen
und liegen
~
. Um die Erkennung, ob ein Zeichen zu machen , ist Zeichensetzung (.
,'
,!
,) oder nicht, wäre es am besten, wenn alle Werte über log
.
(46). Und es sollte kein\
s im String geben, da Java sonst denkt, dass es sich um Escape-Sequenzen handelt, und ich sie daher maskieren muss. Schließlich kam ich auf die Idee, 866 von den griechischen Zeichen zu subtrahieren.quelle
Python 3,
350345 BytesProbieren Sie es online aus
quelle
sep
für -5 Bytes entfernenWindows 10 Batch,
424404 ByteAnmerkungen:
chcp
Aufruf schlägt fehl, wenn Ihre Eingabeaufforderung für die Verwendung von Rasterschriftarten konfiguriert ist. Ändern Sie sie in zB Lucida Console (erfordert keinen Neustart).chcp 65001
.Bearbeiten: 20 Bytes dank @ ConorO'Brien gespeichert.
quelle
@set t="Και σαν πρώτα ανδρειωμένη," "χαίρε ω χαίρε Λευτεριά!"
und ersetzen%t% %u%
durch%t%
?Bubblegum , 190 Bytes
Probieren Sie es online aus!
quelle
PowerShell ,
332270261 ByteProbieren Sie es online aus!
Dies nimmt die Munged-Zeichenfolge als
char
-array und führt sie einzeln durch eine Schleife bei|%{...}
jeder Iteration, wobei entweder das Zeichen gerade ausgegeben$_
oder erhöht wird,870
bevor es erneut als Zeichen umgewandelt wirdchar
(basierend darauf, ob es sich um eine Interpunktion handelt oder nicht). Ein paar andere Tricks setzen sich$a
als Wiederholungssatz zusammen und verdreifachen die letzten drei Strophen. Diese werden alle-join
zu einer vollständigen Zeichenfolge zusammengefasst, und die Ausgabe erfolgt implizit.Bearbeiten - Woo! Dies ist die 1100. PowerShell-Antwort auf der Website! : D.
quelle
Japt,
197196195 BytesTesten Sie es online! Enthält drei 0x95 Bytes, die durch ersetzt wurden
?
.quelle
/// ,
324323 BytesProbieren Sie es online aus!
Vielleicht könnte es mehr Golf gespielt werden, aber ich bin müde.
Es funktioniert durch Ersetzen von Zeichen wie
k
durch längeren Text. Ich habe auch einige Zeichensubstitutionen vorgenommen, da die griechischen Zeichen mehr Bytes haben als Zeichen wiep
. Einfach genug.-1 Byte dank @ErictheOutgolfer.
quelle
ΛευτεPιά!/
, können Sie diese entfernen, damit die Ausgabe keine führende neue Zeile enthält.Bash + GNU iconv, 214
Hierbei wird lediglich das
iconv
Dienstprogramm verwendet, um die GRIECHISCHE Codierung (Byte pro Zeichen) in utf-8 zu konvertieren und ein wenig Redundanz durch Speichern von Wiederholungen in Variablen zu beseitigen.Versuchen Sie nicht, direkt von oben zu kopieren - viele nicht druckbare Dateien werden beim Einfügen mungiert. Erstellen Sie das Skript stattdessen wie folgt:
quelle
-f GREEK
ist nicht erforderlich. Die Verwendung eines Heredocs anstelle eines Herestrings spart ein zusätzliches Byte.PHP, 296 Bytes
PHP, 349 Bytes
quelle
Python 2.7, 190 Bytes
zlib Missbrauch. Hexdump:
Wie @Dennis hervorhebt, muss dies in einem Terminal ausgeführt werden, damit es die UTF-8-Ausgabe korrekt erzeugt.
quelle
echo -ne '.encode("utf8")' >> code.py
Zeile in der Mitte wird das Problem behoben. Ich denke nicht, dass es zu verrückt ist, sich auf ein UTF-8-Terminal zu verlassen, aber wenn ja, werde ich die Antwort ändern.Netzhaut , 199 Bytes
Probieren Sie es online aus!
Woohoo, knapp 200 Bytes.
Erläuterung
Die Hauptidee besteht darin, die tatsächlichen Unicode-Zeichen größtenteils zu vermeiden, da sie nur die Anzahl der Bytes erhöhen, wenn sie überall verwendet werden. Stattdessen stelle ich jeden griechischen Buchstaben durch einen ASCII-Buchstaben oder eine Ziffer dar. Es stellt sich heraus, dass die relevanten Buchstaben von
Α
(das ist ein Alpha)ώ
genau 62 Codepunkte umfassen. Das sind 10 + 26 + 26, die Anzahl der ASCII-Ziffern und Buchstaben. Das andere Unicode-Zeichen, das wir haben, ist das¶
, mit dem Retina Zeilenvorschübe darstellt. Wir können ein paar weitere Bytes sparen, indem wir diese durch ersetzen_
. Dann enthält die Kurzschriftw
in Transliterationsstufen genau die 63 Zeichen, die wir als Substitutionen verwendet haben, und wir können den Bereich, dem dies zugeordnet ist, mit nur 3 2-Byte-Zeichen (¶
und den beiden Enden des griechischen Buchstabenbereichs) darstellen.Daher ist der Code größtenteils ziemlich unleserlich, da diese Ersetzung in der allerletzten Phase erfolgt. Lassen Sie uns dies rückgängig machen, um den Code ein bisschen sinnvoller zu machen:
Das sieht ein bisschen mehr nach dem aus, was wir ausgeben wollen. In der ersten Phase wird lediglich der Gesamtrahmen festgelegt. Es enthält alle eindeutigen Teile der Ausgabe sowie einige weitere Platzhalter für wiederholte Teile:
:
steht für die erste und dritte Zeile. Sie sind am Ende etwas anders, weil dasκ
in der dritten Zeile fehlt, weshalb die allerletzte Stufe die zweiteκ
im Ergebnis entfernt.#
steht für die letzten beiden Zeilen, die dreimal wiederholt werden.;
steht für dasχαίρε
in diesen Zeilen wiederholte .=
steht für ein Wort, das mitτ
(und dem Leerzeichen davor) beginnt . Es gibt gerade genug davon, um ein einzelnes Byte zu speichern.quelle
Jolf, 187 Bytes
In der griechischen Codepage verschlüsselt zu sein, hilft.
Probieren Sie es hier aus! Es ist alles griechisch für mich ...
quelle
Python 3 , 246 Bytes
Probieren Sie es online aus!
Meine Einstellung zu Rods Ansatz.
quelle
Bubblegum ,
194187 BytesSie können diesen Hexdump mit umkehren
xxd -r
.Danke Dennis, dass du mich zu Zopfli weitergeleitet hast :)
quelle