La tâche consiste à générer toutes les chaînes de 'a' à '999', y compris les caractères majuscules comme ceci:
'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ...
'8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba'
et ainsi de suite (combler les lacunes), en commençant éventuellement par la chaîne vide.
Contribution:
- Le nombre de caractères consécutifs que le programme doit imprimer.
Production:
- Un tableau contenant chaque chaîne OU une chaîne par ligne
Précisions:
L'ordre n'a pas d'importance, vous pouvez d'abord imprimer des lettres majuscules ou minuscules si vous le souhaitez.
La sortie peut renvoyer n'importe quel type d'énumération, ne doit pas être spécifiquement un tableau, bien que je doute que l'impression de toutes les combinaisons ne soit pas la manière la plus simple de procéder.
Une entrée de
3
afficherait toute la chaîne de'a'
(ou''
) à'999'
‚une entrée de5
jusqu'à'99999'
et ainsi de suite.
code-golf
string
number
array-manipulation
Simon Landry
la source
la source
a = (function return)
.a
à9999
, pour 5 c'esta
à99999
, et ainsi de suite.Réponses:
Gelée , 7 octets
Il s'agit d'un lien monadique qui accepte un entier en entrée et renvoie un tableau de chaînes.
Essayez-le en ligne!
Comment ça fonctionne
la source
Haskell, 65 octets
Exemple d'utilisation:
k 3
->["a","b","c",....,"997","998","999"]
.Comment ça fonctionne
la source
Python, 86 octets
Génère une liste de chaînes non vides. Ajoute récursivement chaque caractère alphanumérique à chaque sortie
n-1
et chaîne vide.la source
JavaScript (Firefox 30-57), 108 octets
Enregistré 3 octets en utilisant toUpperCase. Le calcul des 62 caractères me prend 10 octets supplémentaires.
la source
f=
au début. (J'oublie toujours de le faire pour les réponses récursives.)f=
, tout autre problème est dû à la façon dont vous essayez de l'appeler.Gomme de cannelle, 15 octets
Pas assez court, bien que ce soit le genre de défi que Cinnamon Gum a été fait pour :(
Compressé en convertissant la base bijective 96 en base 256. Essayez-le en ligne. Les entrées supérieures à 2 entraîneront des problèmes sur TIO.
Explication
Cela décompresse le regex
[a-zA-Z0-9]{1,%s}
. Leh
mode remplace ensuite l'entrée dans%s
et produit toutes les chaînes correspondant à l'expression régulière.la source
Rubis, 82 octets
Construit des produits cartésiens du jeu de caractères à la longueur donnée. Le jeu de caractères est généré en saisissant tous les caractères entre
0
etz
et en filtrant les caractères non verbaux et également_
.la source
05AB1E ,
98 octetsCode:
Explication:
Utilise l' encodage CP-1252 . Essayez-le en ligne! .
la source
Python 2.7,
136134 octetsMerci à Maltysen et NonlinearFruit pour avoir économisé 2 octets
Prend
ascii_letters
etdigits
du module de chaîne et utilise le produit cartésien àproduct
partir d'itertools pour calculer toutes les combinaisons.Production
la source
i in range(n)
avecrepeat=i+1
range
fonction?Pyth -
1312 octets1 octets enregistrés grâce à @Jakube.
Essayez-le en ligne ici .
la source
rBG1
enregistrer un octet de plus+GrG1
B
ifurcate fonctionne avec des arguments? Merci.Python 2,
10697 octetsEssayez-le sur Ideone .
la source
MATL , 12 octets
Cela prend un nombre en entrée.
Essayez-le en ligne!
Explication
la source
𝔼𝕊𝕄𝕚𝕟 , 21 caractères / 27 octets
Try it here (Firefox only).
Nan. Nan. Nan.
Explication
la source
Perl, 113 octets + espace
Utilisez "perl -E" sur ce qui précède, avec un argument qui est un nombre. Je pourrais sans doute décemment ne pas avoir compté le dernier "map say" dans le nombre de caractères.
la source
J, 50 octets
La moitié des octets, 25 pour être exact, sont dépensés pour générer les lettres et les chiffres nécessaires.
la source
APL,
3837 octetsla source
(⎕ucs 96+⍳26),⎕d
=>⎕d,⍨⎕ucs 96+⍳26
Utilitaires Bash + GNU, 90
Entrée en tant que paramètre de ligne de commande. La sortie est une liste séparée par des espaces.
Fonctionne pour les entrées jusqu'à et y compris 3. Manque de mémoire avec 4 - le
eval printf
prend un ensemble complet de 63 n éléments de l'expansion bash.la source
Utilitaires Bash + GNU, 66
Approche différente (et je pense légèrement nouvelle) de mon autre réponse :
dc
compte à rebours de 2 48 -1 à 2 48 -64 n etP
imprime chaque nombre résultant sous la forme d'un flux secondaire (c'est-à-dire la base 256). Si l'entrée est comprise entre 1 et 4 inclus, cela est garanti d'être exactement 6 octets par numéro.base64
convertit cela en sortie base64 et donc 8 octets par chiffre base64, un par ligne.sed
dénude menant/
(base64 chiffre 63), puis supprime toutes les lignes contenant+
ou/
(base64 chiffres 62 et 63). Cela laisse la séquence requise.la source
R , 73 octets
y
commence comme une chaîne vide,x
comme le cas de base'a','b','c',...,'8','9'
.outer
prend chacun de ses arguments d'entrée et applique la fonctionpaste0
à chaque combinaison d'éléments dansy
etx
qui concatène les chaînes.y
enregistre le résultat, l'cat
imprime et l'itère à travers le nombre STDIN de fois.Essayez-le en ligne!
la source
Jq 1,5 , 97 octets
Étendu
Essayez-le en ligne!
la source