Paul est l'une de vos connaissances belges, et il aimerait que vous créiez un programme qui génère au moins l'une des cinq chaînes suivantes :
12496=>14288=>15472=>14536=>14264
14264=>12496=>14288=>15472=>14536
14536=>14264=>12496=>14288=>15472
15472=>14536=>14264=>12496=>14288
14288=>15472=>14536=>14264=>12496
Il représente les amis dont il est le plus fier et il aimerait manger avec eux. Paul pense également que le chiffre 6 est parfait, et c'est le seul chiffre qui mérite d'être utilisé. Donc , vous ne pouvez pas utiliser un autre chiffre que « 6 » dans votre code (0 à 5 et 7 à 9 sont interdits). Votre programme ne peut accepter aucune entrée. La sortie peut contenir des ordures avant et / ou après la chaîne mais doit contenir au moins une des chaînes ci-dessus.
Par exemple, ceci est une sortie valide:
220frefze
f**14288=>15472=>14536=>14264=>12496**fczfe fz**15472=>14536=>14264=>12496=>14288**zfe
fzehth
J'ai "légèrement" laissé entendre dans la question comment je m'attendais à ce que cela soit résolu, mais comment le sait-on? Peut-être y a-t-il une meilleure façon ... J'espère que vous vous amuserez.
C'est le code-golf: le score le plus bas en octets l'emporte.
Réponses:
05AB1E ,
1817 octetsEssayez-le en ligne!
Explication
En bref, nous calculons chaque nombre comme
f(n+1) = sum(divisors(f(n)) - f(n)
la source
Pyke, 16 octets
Essayez-le ici!
Chaque fois qu'un littéral de chaîne se trouve à la fin d'un programme, il l'échange avec le jeton juste avant lui, économisant 1 octet dans des cas comme celui-ci. La
factors
fonction de Pyke n'inclut pas le nombre lui-même ni 1. Si les nombres étaient autorisés, 1 octet pourrait être enregistré en remplaçantw$
par4
Pyke, 21 octets
Essayez-le ici!
Créez une liste des numéros requis et joignez-les. Pas très intéressant à part l'astuce avec les cordes.
la source
MATLAB, 44 octets
Essayez-le en ligne!
Je n'ai pas trouvé de modèle dans les chiffres (et il serait difficile d'utiliser le modèle pour quoi que ce soit de toute façon, car je ne peux pas utiliser de nombres), alors je vais simplement opter pour l'approche naïve.
'=>@EBIJ=@>DDIJ=A@C>IJ=@A?BIJ=@>B@'
est la chaîne'12496=>14288=>15472=>14536=>14264'
lorsque 12 est ajouté aux valeurs ASCII. Maintenant, entrez cette chaîne, soustrayez6+6
et concaténez avec la chaîne vide''
pour la convertir en un tableau de caractères.la source
=>
.JavaScript (ES6), 57 octets / 47 (UTF-8) caractères
Merci à l'utilisateur 5090812 pour 10 B de sauvegarde
Explication
Nous créons d'abord un tableau et le remplissons avec les caractères de la chaîne
バ㟐㱰㣈㞸
. Ensuite, nous bouclons sur la chaîne (a
a la valeur de l'élément actuel) et nous changeons le caractère en son code de caractère. Ensuite, nous joignons toutes les valeurs du tableau par=>
.Ancien: 67 octets
Explication
Nous créons d'abord un tableau de longueur 5. Ensuite, nous modifions les valeurs du tableau à chaque index pour le code de caractère du caractère à ce même index dans la chaîne
バ㟐㱰㣈㞸
, qui sont les numéros de tous les amis de Paul dans l'ordre. Lorsque nous avons obtenu cela, nous joignons le tableau ensemble, et nous utilisons=>
comme séparateur.Usage
Pour l'utiliser, exécutez simplement ceci:
Production
la source
Ruby, 36 octets (26 caractères)
Parce que pourquoi pas. Ennuyeux comme l'enfer.
ancienne version - 53 octets
Explication: l'encodage des nombres en base 25 donne les 5 chaînes de six libres, pour les décoder je n'ai qu'à représenter le nombre 25 en utilisant seulement 6: (6-1) (6-1) => ~ -6 ~ -6
la source
Perl 6 ,
6359 octetsDécode les nombres de la base 25, car c'est la seule base prise en charge par
.parse-base
(2 à 36) où aucun d'entre eux n'a de chiffres invalides.Merci à Neil pour -3 octets.
Perl 6 ,
8275 octetsDécode le nombre
15472
de la base 36, puis génère la séquence en calculant chaque nombre comme la somme des diviseurs appropriés du nombre précédent.Perl 6 , 69 octets (47 caractères) - sans concurrence
N'utilise aucun des chiffres ASCII interdits, utilise à la place des chiffres Unicode du bloc arabe-indicateur (2 octets chacun)! Les
{ }
interpolations de chaînes garantissent qu'elles sont analysées en tant que littéraux numériques Perl 6, puis stringidées en leurs représentations ASCII.D'accord, c'est de la triche - c'est pourquoi je ne l'ai pas utilisé comme réponse principale ... :)
la source
--$/*$/
?--($/=6)*$/)
.Gelée ,
54 octetsImprime les cinq chaînes. Profite du fait que la sortie "poubelle" est autorisée et enterre les cinq chaînes dans 10 3003 caractères de sortie.
Comment ça fonctionne
la source
C,
948477 octetsStoopid simple. Remerciements spéciaux @Neil
f () {printf ("% d =>% d =>% d =>% d =>% d", '~' 'r' - 'd', '~' 'd' - 'h', ' ~ ' ' r '-' L ',' ~ ' ' z '+' d ',' ~ '*' t '-' P ');}la source
char*m
intérieurfor()
pour enregistrer un octet, et cela rend également la fonction réutilisable (condition nécessaire des fonctions). En outre, vous produisez un null de fin;*++m
réglerait cela. En outre, vous pouvez enregistrer quelques octets en soustrayant 60 au lieu de 66:g(){for(char*m="!mnpuryzmpnttyzmqpsnyzmpqoryzmpnrp";*++m;)putchar(*m-66+6);}
.initial declaration used outside C99 mode
mais je suis heureux de simplifier le putchar. Merci!PHP,
736360 octetsCourez avec
-nr
.un peu moins paresseux: a string liste des à
=>1(ascii)(ascii)
savoir:
124
,96
,=>1
,42
,88
,=>1
,54
,72
,=>1
,45
,36
,=>1
,42
,64
;imprimer
=>1
par index de chaîne, ajouter du code asciipanne
la source
C ++, 92 octets
la source
PHP, 53 octets
Vidage hexadécimal:
Production:
Explication:
Chacune des sections entières à cinq chiffres est codée comme un petit endian court non signé, puis concaténée ensemble et le résultat est compressé. Cela se produit pour produire une vapeur d'octets qui n'a pas de caractères numériques incriminés, qui est ensuite codée en dur dans une chaîne. Pour extraire, décompressez le flux, décompressez les courts métrages à deux octets, interprétez chacun comme une chaîne et joignez-le
>=
.la source
Java 8, 134 octets
Golfé:
Programme complet non golfé:
la source
Lot, 191 octets
J'estime qu'il faudrait au moins 32 octets pour calculer chaque nombre en utilisant uniquement
6
s plus 32 autres pour les imprimer tous, ce qui fait déjà 192 octets, donc je gagne en calculant la chaîne amiable. De plus, je pense que cinq%
s d'affilée sont un record pour moi. En outre, astuce Batch soignée: le%n%
est substitué avant l'for
évaluation de la boucle, de sorte que la boucle calcule tous les facteurs den
, et les soustrait den
, entraînant ainsi la négation du résultat souhaité.la source
Gelée , 12 octets
Imprime la quatrième chaîne et rien d'autre.
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 2,
7872 octetsEdit - Merci à Stewie Griffin pour avoir économisé 6 octets!
De plus, une autre solution serait de produire toutes les permutations possibles. OP dit que les ordures vont bien.
Il y a trop de redondance dans la conversion de
int
oulist
versstr
. Je suppose que ce serait plus facile dans certaines langues ésotériques, mais je n'en connais aucune.la source