Sortez la même longueur de Lorem ipsum que votre code!
Règles:
- Le code ne peut pas être identique à la sortie
- Aucune bibliothèque de compression
- Le programme le plus court en deux semaines gagne
- Aucune utilisation du réseau, la lecture de fichiers et d' autres trucs qui , avec un pourrait facilement résoudre tout problème de golf de code (avec
eval
,exec
, etc.)
Exemple
Your code with length 25.
Production
Lorem ipsum dolor sit ame
code-golf
string
compression
self-referential
randomra
la source
la source
Réponses:
GolfScript (122 ou 138 octets)
Il semble y avoir une très petite ambiguïté dans les règles: que signifie exactement "sortie"? De nombreux programmes supposent que la "sortie" d'un programme n'inclut pas de retour à la ligne final, qui est là pour garantir que la ligne suivante de l'entrée shell commence sur une ligne distincte.
est de 122 octets et produit 122 octets de lorum ipsum et une nouvelle ligne de fin.
est de 138 octets et produit 138 octets de lorum ipsum sans retour à la ligne.
la source
rot13 (1)
je suis surpris que personne n'ait pensé à ça avant :)
et en prime, une solution perl très simple
Perl (252)
la source
...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
very simple perl solution
soit plus.Golfscript - 161
Edit: la solution python a une longueur différente de la sienne, donc j'en ai fait une meilleure avec golfscript. C'est aussi ma première réponse golfscript.
Je ne sais pas comment cela est codé ici, alors voici un lien vers le fichier.
la source
Python 2 - 332
Si quelqu'un s'en soucie, voici une liste partielle des améliorations:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332
la source
Mathematica, 8
Je fais l'hypothèse qu'une sortie visuellement identique est acceptable. J'utilise donc ce caractère à la place de l'ASCII "i" qui provoque le tri automatique des deux symboles dans le bon ordre:
la source
Bash, 156
Parce que l'utilisation d'une vraie "bibliothèque de compression" est interdite, je vais abuser
base64
de coreutils à la place. (xxd -r
pour décoder la soumission)J'ai généré le code ci-dessus en utilisant ce programme PHP:
la source
cat $0
.Mathematica
4746Je ne sais pas si c'est du fair-play. Mathematica a le texte «complet» de Lorem ipsum dans ses données d'exemple. Ce qui suit indique simplement à Mathematica de prendre une chaîne d'une longueur particulière à partir de l'exemple intégré de Lorem Ipsum.
Modifier :
Original :
la source
PHP, 75 (dynamique)
Exemple de sortie:
Il n'utilise pas de compression, mais il contourne les règles. Beaucoup.
Vous pouvez ajouter des caractères parasites à la fin de l'exemple et avoir toujours la sortie correcte (jusqu'à 2k + caractères).
PHP, 59 (statique)
Identique à ci-dessus, mais utilise une taille fixe et sera incorrect si des caractères supplémentaires sont ajoutés.
la source
Lot Windows,
878720Testé sur Windows XP et Windows 7, mais devrait fonctionner pour chaque cmd avec des extensions (IIRC, Windows NT et versions ultérieures).
Doit être exécuté en utilisant
CMD /V:ON /C batchfile
pour activer l'extension de variable retardée, mais je préfère cela à un environnement non compatible avec le codegolfSETLOCAL EnableDelayedExpansion
dans le fichier de commandes.la source
J (144)
J'aurais été 128 si je n'avais pas eu besoin d'en faire un bon script pour que vous puissiez mesurer la sortie.
Comment ça marche: il n'y a que 23 caractères uniques dans le texte, donc cela peut être représenté dans un codage de 5 octets. Les caractères de la chaîne codée sont convertis en leurs nombres ASCII (
a.i.
), puis chacun des nombres est transformé en leur représentation en base 2 (#:
), puis les bits sont regroupés en groupes de cinq (_5>\,
), puis chacun de ces groupes est converti à sa valeur (#.
), et ceux-ci sont utilisés comme index dans la table de recherche. ({~
).La table de recherche avait en fait besoin d'un bricolage, car un littéral de chaîne J ne peut pas contenir
\n
,\r
ou\0
.Hexdump:
la source
('VLI., ',97}.a.)
d'une certaine manière, cela ne gâche pas l'autre littéral.