Ecrivez un programme qui, pour les nombres de 1 à 255, imprime le code BF qui produira le nombre donné dans un octet du tableau, plus une nouvelle ligne.
Par exemple, les quatre premières lignes de la sortie pourraient (et seront probablement):
+
++
+++
++++
Le gagnant sera le plus petit: source code + output
(en octets).
Clarifications et révisions :
Les programmes BF utilisent des cellules d'emballage.
Le programme BF en sortie doit se terminer avec la seule cellule non nulle étant la cellule contenant le numéro.
Les programmes doivent être sortis dans l'ordre croissant.
La sortie d'un programme pour 0 est facultative.
Les pointeurs de données négatifs ne sont pas autorisés.
<
au premier pointeur ne fera rien. (laissez un commentaire s'il serait plus approprié de le lancer)
la source
+>++++++++++.
un programme valide pour l'entrée1
?Réponses:
Perl 6 , 224 + 3964 =
58344188 octetsEssayez-le en ligne! (délai d' attente mai. Changez le
^27-13
pour^25-12
accélérer légèrement au prix d'une sortie supplémentaire)Affiche le code le plus court du formulaire
*>[*>*<]>*
, où chacun*
correspond à un certain nombre de+
s ou de-
s. Il y a quelques réglages supplémentaires tels que supprimer la boucle si elle n'est pas nécessaire, ainsi que les points de fuite>
.Autant que je sache, la sortie est la plus réussie pour ce format particulier.
Explication:
la source
Malbolge , 28 743 octets + 7 166 de sortie
Pas trop créatif, n'est-ce pas? Je vais travailler au golf de ce mauvais garçon.
Essayez-le en ligne!
la source
Brainfuck,
777573 + 32894 = 329673296932971octetsEssayez-le en ligne!
la sortie est la plus simple possible
explication:
la source
Stax , score
47514783 (812 octets + 3971)Exécuter et déboguer
J'ai commencé avec les programmes publiés optimaux .
J'ai utilisé un regex-fu, pour le limiter aux programmes les plus courts qui utilisent au plus 2 cellules. Ensuite , je parés toute fuite
<
ou>
caractères. Je pense que c'est un moyen éventuellement prudent de s'assurer qu'il n'y a pas de cellules non nul superflues à la fin du programme. Je l’ai ensuite fait passer par un programme expérimental stax que j’ai écrit pour générer des programmes stax pour une sortie fixe de type kolmogorov.Ce programme fonctionne en appliquant de manière répétée des remplacements de chaînes. A chaque étape, il recherche la sous-chaîne de longueur> la plus fréquente et la remplace par un caractère inutilisé.
la source
Charbon de bois ,
707698410 + 3627 =433443254037 octetsEssayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
Désactivez le remplissage d'espace.
Attribuez une grande chaîne compressée composée des réponses de @ JonathanAllen pour
-128
..-15
mais avec+
et les-
signes transposés.Dessine un triangle de
+
s sur le côté 14, qui génère les résultats corrects pour les valeurs 1 à 14. Le curseur est laissé dans le coin inférieur, bien que le retour à la fin de la chaîne compressée déplace la sortie suivante sur la ligne suivante.Fractionnez la chaîne longue sur les caractères de retour et imprimez chaque sous-chaîne dans l'ordre inverse, générant ainsi les résultats de 15 à 128.
Déplacez une ligne vers le haut de sorte que le résultat de 128 soit remplacé par le résultat annulé de 128.
Boucle à travers la chaîne transposant
+
et de-
retour afin qu’ils génèrent les résultats corrects pour 128 à 241.Tracez un triangle de
-
s sur le côté 14, ce qui génère les résultats corrects pour 242 à 255.la source
Gelée , 1224 + 3716 = 4940 octets
Un programme complet.
Essayez-le en ligne!
Comment?
Presque entièrement la compression des meilleurs courants sur les esolangs qui ne laissent qu'un seul non-zéro, les mouvements de bande de fuite étant supprimés. Il existe probablement un moyen d'évaluer un sous-ensemble de programmes BF de manière à ce qu'ils se terminent et aboutissent aux solutions les plus courtes qui auraient permis de vaincre ce programme naïf. Il pourrait également y avoir un moyen de surmonter ce problème en mettant en place un programme plus intelligent de création de modèles ou de factorisation.
la source
SuperMarioLang , 231 + 32894 octets
Essayez-le en ligne!
Cela peut certainement être joué au golf plus, car le résultat est le plus fondamental pour le brainfuck, mais il m'a fallu toute la journée pour écrire cette réponse (mes trois enfants me laissent peu de temps) et je suis fier qu'au moins j'ai réussi à atteindre cette.
la source
Python 2, 70 + 8428 = 8498
-2 octets Merci à A__!
-20 octets Merci à Jonathan Allan!
-229 octets en plaçant le numéro dans la deuxième cellule
-1000 octets en passant de 16 à 9
Essayez-le en ligne!
Sortie
la source
Ruby 271 + 5363 = 5634
Essayez-le en ligne!
Convertit chaque valeur en la plus petite base qui ne contient pas de
zéroson chiffre initial à un autre endroit, puis convertit à partir de cette base. Les valeurs supérieures à 127 sont calculées comme leurs inverses.Sans emballage, 221 + 5888 = 6109
En utilisant la même approche que ci-dessus, avec des cellules non enveloppantes.
Essayez-le en ligne!
la source
JavaScript (Node.js) , 691 + 3627 = 4318
En utilisant la même approche que celle de @ Neil's Charcoal , et donc également basée sur la réponse de @ JonathanAllan Jelly .
Essayez-le en ligne!
la source
Keg non officiel 16 + 32895 = 32911 octets
Une solution de base pour une langue de golf. C'est le plus simple auquel je puisse penser.
Essayez-le en ligne!
la source
Ruby 23 + 32895 = 32918 octets
En tant que base. C’est la solution la plus simple à laquelle je puisse penser.
la source
0
devrait probablement être1
(bien que j'ai demandé si nous pouvons produire pour zéro aussi)256.times{|n|puts ?+*n}
pas qu'il importe trop ...Retina 0.8.2 , 28 + 16640 = 16668 octets
Essayez-le en ligne! Inclut la sortie pour
0
. Soit juste des sorties utilisant+
s jusqu'à 127 et-
s jusqu'à 255.la source
Scala , 95 + 16639 = 16734 octets
Essayez-le en ligne!
Une réponse simple qui ne va évidemment pas gagner. Utilise uniquement le fait que l'
-
opérateur (en diminuant un octet) revient à 255.la source
05AB1E , score: 4848 ( code source de 1219 octets + sortie de 3629 octets)
La sortie est un portage de la réponse Charcoal de @Neil , alors assurez-vous de le revoter également!
Essayez-le en ligne.
Explication:
Voir cette astuce de la mine de 05AB1E (section Comment compresser les grands entiers ) pour comprendre pourquoi
•тôm...ò´Θ•
est183...875
.la source