Défi:
Le concept est assez simple: écrivez un programme complet pour sortir son propre score de golf de code!
La sortie ne devrait être que le nombre d'octets de votre programme et une fin bytes
.
MAIS ATTENDRE ..... il y a une restriction:
- Votre code source ne peut inclure aucun des chiffres de votre nombre d'octets
- Donc , si votre score est
186 bytes
, votre programme ne peut pas contenir les caractères1
,6
ou8
Exemple de sortie:
315 bytes
27 Bytes
49 BYTES
Règles supplémentaires:
- Les caractères inutiles, les espaces et les nouvelles lignes sont interdits dans le code source, cependant les espaces de fin et les nouvelles lignes sont parfaitement acceptables en sortie
- Il devrait y avoir un seul espace entre le nombre et
bytes
dans la sortie - Les lettres sont insensibles à la casse
- Aucune auto-inspection ou lecture du code source
les failles standard sont interdites
c'est du code-golf , donc
Le code le plus court en octets gagne!
bytes
je pense que l'intention est que le décompte comprenne les octets nécessaires à l'impression du texte:bytes
1 bytes
ou1 byte
? (Gardez à l'esprit qu'il y a déjà 41 réponses, bien que je ne pense pas qu'elles soient affectées)Réponses:
JavaScript, 19 octets
Octal a été inventé pour servir deux objectifs:
Essayez-le en ligne!
la source
Perl 5 , 16 octets
Il y a beaucoup d'autres façons d'obtenir
16
mais celui-ci est le mienEssayez-le en ligne!
la source
&
|
^
et~
peuvent également s'appliquer à chaînes et travaillez dessus comme sur une liste de valeurs ASCII (si et seulement si les deux côtés sont des chaînes). Pour|
et^
cela fonctionne comme si la chaîne courte était étendue avec\0
. Après cela, un exercice simple vous permettra de trouver des combinaisons de lettres correspondant au résultat souhaité7 , 23 caractères, 9 octets
Essayez-le en ligne!
C'est un défi assez difficile dans une langue composée uniquement de chiffres, mais j'ai réussi à le gérer…
Ceci est juste 9 octets dans le codage de 7. (À proprement parler, il s'agit de 8⅜ octets (23 × ⅜ - ¼ car les deux derniers bits 1 peuvent être omis), mais pour la première fois, l'exigence de PPCG d'arrondir à un nombre entier d'octets est en réalité un avantage, car elle signifie les 1 bits de fin supplémentaires sont nécessaires et ne sont donc pas interdits par la question.) Un vidage hexadécimal réversible:
Le principal défi de l'écriture de ce programme en 7 était de le graver à moins de 10 octets (écrire 7 sans utiliser
0
ou1
c'est assez difficile.) Ceci utilise la même structure que le programme standard "Hello world":En d’autres termes, nous commençons par créer deux sections de l’espace de données; nous avons deux littéraux, chacun y poussant une séquence de commandes. La deuxième section (ils sont poussés dans le style de pile, donc premier push = dernier pop) est une séquence de commandes assez arbitraire mais est poussée à l'aide de la séquence de commandes
5434004514133240105
(produisant ainsi la séquence de données5434664574733246765
; lorsque l'on parle de 7 dans le texte, j'utilise normalement la police normale pour une commande qui pousse un littéral, et gras pour le littéral résultant correspondant). La première section est poussée en utilisant la séquence de commande403
, produisant463
. Ensuite, la première section est recopiée dans le programme (comportement implicite de 7).Le
463
est maintenant composé de commandes (gras) qui font quelque chose immédiatement, plutôt que de commandes (non gras) qui poussent juste des littéraux.4
réorganise les sections pour obtenir notre "chaîne littérale" dans la première section. Ensuite,0
l'opération 7 qui est la plus connue est la suivante: prendre une partie de l'espace de données et reconstruire la séquence de commandes qui l'a probablement créée. Dans le cas où la séquence de commande originale était tout0
-5
, elle est exacte à 100% (sans surprise, car ces commandes poussent uniquement les données et laissent ainsi des preuves évidentes de ce qu'elles ont fait), et nous retrouvons donc notre séquence d'5434004514133240105
origine. Enfin, l'3
imprime.La dernière chose à regarder ici est donc l'encodage de la chaîne. Cela a son propre langage spécifique au domaine:
(Il n'y a pas de "jeu de caractères de sélection: lettres minuscules" dans le jeu de caractères "chiffres et symboles communs" - vous devez d'abord utiliser un jeu de caractères différent - j'ai donc dû utiliser une majuscule pour jouer aussi rapidement que possible sous le 10 réel. -byte limite.)
la source
Toile , 8 octets
Essayez-le ici!
Une solution plus intéressante à 20 octets:
Essayez-le ici!
la source
brainfuck , 53 BYTES
Essayez-le en ligne!
Une autre soumission avec une majuscule
bytes
. Trouvé avec l'aide de l'excellent assistant BF-Crunch de Primo.la source
PHP, 14 octets
la source
bytes
partie en dehors de la?>
? Essayez-le en ligne!PHP plus ancien que 7.2 , 13 octets
Suppose que les paramètres par défaut (les avertissements E_NOTICE sont désactivés) et la version de PHP antérieure à 7.2.
Doit être décodé avec
xxd -r
Ou si vous préférez Base64
Essayez-le en ligne!
la source
Stax , 5 octets
Exécuter et déboguer
Déballé, ça ressemble à ça. Le mode source compacte rend ce genre de tâche triviale et sans intérêt.
Si vous ne souhaitez pas utiliser le mode source condensé,
6^p`5l@
fonctionne pour 7 octets.la source
restricted-source
, pas sur la langue. C'est en fait le moyen le plus direct de produire en"5 bytes"
utilisant Stax.R , 16 octets
Essayez-le en ligne!
la source
bytes
". Le programme est de 16 octets.cat
par défaut ajoute un espace entre ses entrées.object.size
sorties dans le format correct (avecbytes
inclus par défaut). Fâcheusement, le plus que je pouvais trouver est 17:object.size(0)-39
. TIOobject.size(0)/3
.Python 3 ,
252418 octetsEssayez-le en ligne!
la source
3*8
devrait bien se05AB1E , 6 octets
Essayez-le en ligne!
Alternatives pour
₂¤
inclure:5>
,₁¤
,3·
la source
Bash, 21 octets
"Lisez votre propre code source" n'est clairement pas le gagnant ici, mais personne d'autre n'en a soumis un, alors quoi alors.
Essayez-le en ligne!
la source
Retina , 15 octets
Ce programme compte le nombre de sous-chaînes avec au moins deux caractères dans la chaîne "octets", puis affiche ce nombre et la chaîne elle-même.
Essayez-le en ligne!
la source
PHP + HTML, 16 octets
Oui, cela nous rapproche de l'abus de meurtrières, mais j'estimais que cela devait être signalé. Et l'utilisation de PHP signifie que cette réponse est techniquement écrite dans un langage de programmation complet de Turing. Bien entendu, tout autre langage HTML similaire basé sur des modèles fonctionnerait aussi bien.
Démo en direct (sans PHP):
la source
dc ,
14 à11 octetsEssayez-le en ligne!
-3 octets par
@Cows quack
la source
[ bytes]Bnn
rase quelques octetsMATL , 13 octets
Essayez-le en ligne!
Cela pousse la chaîne '57 $ f} xiw 'et soustrait
4
, pour obtenir13 bytes
. Ceci est converti en caractères utilisantc
.la source
6EV' bytes'h
a 12 ans (j'étais sur le point de le poster)Octave , 22 octets
Essayez-le en ligne!
la source
Octave , 23 octets
Essayez-le en ligne!
Et ça:
Essayez-le en ligne!
la source
4
à (les codes ASCII de)'67$f}xiw'
donne les codes ASCII de'23 bytes'
. Ensuite, la concaténation avec la chaîne vide''
convertit les codes ASCII en caractèresPetit ordinateur BASIC, 11 octets
L'utilisation d'une virgule dans une instruction print déplacera le curseur sur le prochain multiple de la taille de tabulation actuelle. Dans SmileBASIC, il s'agit de 4 par défaut, donc cela produirait
11 bytes
(2 espaces), mais PTC BASIC en utilisait 3 à la place, de sorte que l'espacement de la sortie était correct.la source
APL (Dyalog Unicode) , 12 octets
Programme complet qui imprime implicitement sur STDOUT.
Essayez-le en ligne!
,⍨
est ajoute la chaîne au résultat de la multiplication. L'affichage par défaut des données de type mixte APL place un espace entre un nombre et le texte suivant.la source
Flak cérébrale , 100 octets
Essayez-le en ligne!
Affiche la
bytes
pièce en majuscules. Quelqu'un de familier avec Brain-Flak pourrait être vraiment confus avec tout le((<>))
début, mais rassurez-vous, ils ne sont là que pour abuser de la hauteur de pile nilad ([]
) et aucun des0
s qu'ils produisent n'est imprimé.la source
Haskell , 26 octets
Essayez-le en ligne!
29 octets
Essayez-le en ligne!
la source
$
.Espaces blancs , 112 octets
Juste parce que personne ne l'a encore fait:
Essayez-le en ligne!
Imprime "BYTES" en majuscules, car les lettres majuscules ont des codes ASCII binaires plus courts. Les commandes du programme, dans ma propre notation visible composée, sont les suivantes:
la source
Java 5 ou 6, 44 octets (programme complet)
Pas de lien TIO, car Java 5/6 est ancien. Avec Java 5/6, il était possible d'avoir un enum avec du code au lieu de la
main
méthode- obligatoire , ce qui le raccourcissait pour les défis du programme complet.Des erreurs avec
java.lang.NoSuchMethodError: main\nException in thread "main"
STDERR après l’impression sur STDOUT, ce qui convient selon la méta (mais si le défi n’avait pas permis d’autres erreurs à STDERR,System.exit(0);
peuvent être ajoutées (et les nombres octaux doivent être mis à jour) pour éviter l’erreur.Proposé par @ OlivierGrégoire (et son astuce Java pertinente ).
Java 8+, 74 octets (programme complet)
Essayez-le en ligne.
Java 8+,
1615 octets (fonction lambda)-1 octet grâce à @ OliverGégoire .
Essayez-le en ligne.
la source
37*2
contient un7
, donc ce n'est pas valide. Votre solution de rechange est bien cependant.v->0xE+"bytes"
ouv->0xF+" bytes"
. Je ne peux pas tester mais cela devrait fonctionner de toute façon. Rien ne dit la partition et les "octets" doivent être séparés.FerNANDo , 79 octets
Essayez-le en ligne!
la source
Applescript, 15 octets
Oui, j'y vais.
la source
Your source code can not include any of the digits from your byte count
”
un caractère multi-octets (3 octets en Unicode si mes souvenirs sont exacts), donc plus de 11 octets?Forth (gforth) ,
14 à13 octetsEssayez-le en ligne!
la source
> <>, 13 octets
Essayez-le en ligne!
la source
Lot, 32 octets
COMSPEC
est généralement%WINDIR%\system32\cmd.exe
si j'extrais la sous-chaîne de 10 à 8 caractères de la fin. Ancienne version à auto-référencement de 16 octets:Heureusement, le nombre d'octets n'était pas un multiple de 10.
la source
JavaScript,
16 à15 octetsla source
_=>5*3+' bytes'
5
dans ce cas un ..