Geben Sie die gleiche Länge von Lorem ipsum aus, die Ihr Code hat!
Regeln:
- Code kann nicht mit Ausgabe identisch sein
- Keine Komprimierungsbibliotheken
- Das kürzeste Programm in zwei Wochen gewinnt
- Keine Netzwerknutzung, Datei lesen und andere Tricks , die mit einer leicht beliebigem Code Golf Problem lösen könnten (mit
eval
,exec
etc)
Beispiel
Your code with length 25.
Ausgabe
Lorem ipsum dolor sit ame
code-golf
string
compression
self-referential
randomra
quelle
quelle
Antworten:
GolfScript (122 oder 138 Byte)
Es scheint eine sehr kleine Unklarheit in den Regeln zu geben: Was genau bedeutet "Ausgabe"? Viele Programme gehen davon aus, dass die "Ausgabe" eines Programms keine letzte neue Zeile enthält, um sicherzustellen, dass die nächste Zeile der Shell-Eingabe in einer separaten Zeile beginnt.
ist 122 Bytes und gibt 122 Bytes Lorum Ipsum und eine nachfolgende Newline aus.
ist 138 Bytes und erzeugt 138 Bytes Lorum Ipsum ohne nachfolgende Newline.
quelle
rot13 (1)
Ich bin überrascht, dass sich das noch niemand ausgedacht hat :)
und als Bonus eine sehr einfache Perl-Lösung
Perl (252)
quelle
...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
very simple perl solution
länger dauert.Golfscript - 161
Bearbeiten: Die Python-Lösung hat eine andere Länge als die eigene, daher habe ich mit Golfscript eine bessere gemacht. Dies ist auch meine erste Golfscript-Antwort.
Ich bin mir nicht sicher, wie dies hier codiert ist, daher hier ein Link zur Datei.
quelle
Python 2 - 332
Wenn es jemanden interessiert, hier eine unvollständige Liste von Verbesserungen:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332
quelle
Mathematica, 8
Ich gehe davon aus, dass eine visuell identische Ausgabe akzeptabel ist. Ich verwende daher dieses Zeichen anstelle von ASCII "i", wodurch die beiden Symbole automatisch in der richtigen Reihenfolge sortiert werden:
quelle
Bash, 156
Da die Verwendung einer echten "Komprimierungsbibliothek" verboten ist, werde ich
base64
stattdessen Coreutils missbrauchen . (xxd -r
um die Einreichung zu dekodieren)Ich habe den obigen Code mit diesem PHP-Programm generiert:
quelle
cat $0
.Mathematica
4746Ich bin mir nicht sicher, ob dies ein faires Spiel ist. Mathematica hat den 'Volltext' von Lorem ipsum in seinen Beispieldaten. Im Folgenden wird Mathematica lediglich angewiesen, eine Zeichenfolge einer bestimmten Länge aus dem integrierten Beispiel von Lorem Ipsum zu übernehmen.
Bearbeiten :
Original :
quelle
PHP, 75 (dynamisch)
Beispielausgabe:
Es wird keine Komprimierung verwendet, aber die Regeln werden gebogen. Viel.
Sie können am Ende des Beispiels Müllzeichen hinzufügen und trotzdem die richtige Ausgabe haben (bis zu 2k + Zeichen).
PHP, 59 (statisch)
Wie oben, verwendet jedoch eine feste Größe und ist falsch, wenn zusätzliche Zeichen hinzugefügt werden.
quelle
Windows Batch,
878720Getestet unter Windows XP und Windows 7, sollte aber für jedes cmd mit Erweiterungen (IIRC, Windows NT und höher) funktionieren.
CMD /V:ON /C batchfile
Muss ausgeführt werden , um die verzögerte Variablenerweiterung zu aktivieren, aber ich bevorzuge es, wennSETLOCAL EnableDelayedExpansion
die Batch-Datei nicht Codegolf-freundlich ist.quelle
J (144)
Wäre 128 gewesen, wenn ich es nicht zu einem richtigen Skript machen müsste, damit Sie die Ausgabe messen können.
So funktioniert es: Der Text enthält nur 23 eindeutige Zeichen, sodass dies in einer 5-Byte-Codierung dargestellt werden kann. Die Zeichen in der codierten Zeichenfolge werden in ihre ASCII-Nummern (
a.i.
) konvertiert , dann wird jede der Nummern in ihre Basis-2-Darstellung (#:
) umgewandelt, dann werden die Bits in Gruppen von fünf (_5>\,
) gruppiert , und dann wird jede dieser Gruppen konvertiert auf seinen Wert (#.
), und diese werden als Index in der Nachschlagetabelle verwendet. ({~
).Die Nachschlagetabelle musste tatsächlich etwas gebastelt werden, da ein J-String-Literal nicht enthalten kann
\n
,\r
oder\0
.Hexdump:
quelle
('VLI., ',97}.a.)
auf eine Weise, die das andere Literal nicht durcheinander bringt.