Voici une séquence assez banale qui ne figure pas dans l' Encyclopédie en ligne des séquences entières .
Commencez avec une séquence vide, puis définissez chaque terme comme le nombre de caractères requis pour écrire, en anglais, tous les chiffres de la séquence jusqu'à présent sans espaces. *
Pour référence, le nombre de caractères de tous les (base dix) chiffres en anglais est:
zero one two three four five six seven eight nine
4 3 3 5 4 4 3 5 5 4
(Qui est le début des deux A52360 et A5589 .)
Cela rend la première entrée car il n'y a aucun chiffre présent dans la séquence vide.
Cela rend la deuxième entrée car il faut quatre caractères pour écrire "zéro", le seul chiffre présent jusqu'à présent.
Cela fait la troisième entrée car il faut quatre caractères supplémentaires pour écrire le "quatre" pour un total de huit pour écrire "zerofour".
Cela fait la quatrième entrée car il faut cinq caractères supplémentaires pour écrire "huit" pour un total de treize pour écrire "zerofoureight".
Cela rend la cinquième entrée car il faut huit caractères supplémentaires pour écrire "onethree" pour un total de vingt et un pour écrire "zerofoureightonethree".
...etc. Voici les 100 premières entrées:
0, 4, 8, 13, 21, 27, 35, 44, 52, 59, 67, 75, 84, 93, 102, 112, 121, 130, 142, 152, 162, 171, 182, 193, 205, 216, 225, 235, 247, 259, 270, 282, 293, 305, 318, 331, 344, 357, 371, 384, 398, 412, 422, 432, 444, 456, 467, 479, 492, 503, 516, 526, 536, 548, 561, 571, 583, 597, 610, 620, 630, 642, 652, 662, 671, 682, 693, 705, 718, 731, 744, 757, 771, 784, 798, 812, 823, 836, 849, 862, 873, 888, 903, 916, 926, 936, 948, 961, 971, 983, 997, 1010, 1024, 1038, 1055, 1070, 1086, 1101, 1114, 1127
* Nous pourrions le définir pour d'autres langues et / ou d'autres bases ou avec des espaces bien sûr
Le défi
Étant donné sortie, dans le moins d'octets de code possible, l'un des éléments suivants:
- Le premier termes de la séquence (devraient fonctionner pour les entiers non négatifs)
- La valeur de (devrait fonctionner pour les entiers non négatifs)
- Le ème terme de la séquence (devrait fonctionner pour les entiers positifs - c'est-à-dire la valeur de )
Il s'agit de code-golf, donc la réponse la plus courte en octets gagne pour chaque langue, et la réponse la plus courte en octets gagne. Ne laissez pas les langues de golf vous empêcher d'entrer dans votre langue préférée, qu'elle soit pratique ou ésotérique!
la source
1
devrait sortir[0]
et0
devrait sortir[]
ou 2)0
devrait sortir[0]
(comme dans mon ancienne réponse)?Réponses:
Perl 6 , 45 octets
Essayez-le en ligne!
Pas besoin de modulo fantaisie lorsque vous pouvez obtenir le nom du chiffre directement! Bloc de code anonyme qui renvoie la nième valeur de la séquence, ou vous pouvez passer dans une plage pour obtenir une liste de valeurs
Explication:
la source
»
est un octet, non? En outre, il[+]
pourrait être plus mignon et indiquer comment les opérations binaires peuvent devenir des réducteurs, mais ilsum
est également de trois octets et conforme au reste de la solution, ce qui n'est peut-être pas le plus court mais est certainement l' imo de golf la plus élégante .»
est de deux octets, il est donc interchangeable.say '»'.encode('latin1').bytes
s'affiche1
. :)JavaScript (ES6),
69686158 octetsRenvoiea(n) .
Essayez-le en ligne!
Comment?
Un chiffred est converti en un nombre n de lettres avec:
Parce que le nombre est divisé en caractères numériques, nous pouvons traiterd×100+10 en ajoutant simplement 10 (sous forme de concaténation de chaîne).
la source
Stax ,
1413 octetsExécuter et déboguer
L'aperçu clé ici est que le chiffre
d
nécessite l'((4 - 2 * d) // 3) % 3 + 3
orthographe des lettres. (C'est la division entière en python et le module non négatif de style python)la source
Pip , 21 octets
Prend l'entréen comme argument de ligne de commande et sort les n premiers termes. Essayez-le en ligne!
Explication
la source
large constant to the power of pi
et j'ai été remarquablement impressionné. (C'est toujours impressionnant, mais mon interprétation initiale était juste .. plus)Wolfram Language (Mathematica) , 57 octets
Essayez-le en ligne!
Tr@StringLength@IntegerName@IntegerDigits@#&
répertorie les chiffres de#
, convertit chacun d'eux en un nom anglais, compte la longueur et additionne les résultats. Beaucoup de choses défilent sur les listes, c'est très excitant. Ensuite, nous appliquons simplement la définition de manière itérative.TIO se plaint de ne pas avoir de connexion Internet, mais je ne sais pas pourquoi, car elle trouve quand même la bonne réponse. Peut-être qu'il vérifie les mises à jour des noms d'entiers?
Nest
NestList
la source
Nettoyer , 82 octets
Essayez-le en ligne!
la source
05AB1E ,
1514 octetsEssayez-le en ligne!
Explication
la source
APL (Dyalog Unicode) ,
2928 octetsEssayez-le en ligne!
Merci aux gars @The APL Orchard pour avoir aidé avec celui-ci:
@ngn pour 2 octets; @ H.PWiz pour
34 octets.Maintenant, en utilisant la formule de @ recursive.
Comment:
la source
Python 2 , 61 octets
Essayez-le en ligne!
Utilise le mappage du nombre de chiffres récursif .
Python 2 , 63 octets
Essayez-le en ligne!
Une version de fonction récursive. Il faut un temps exponentiel pour s'exécuter car il a deux appels récursifs vers
f(n-1)
.la source
+3
et l'ai limité aux opérateurs arithmétiques (pas au niveau du bit) et aux nombres <= 4, j'ai trouvé cette solution mais rien de plus court ni même de la même longueur sauf les équivalents.Python 2 , 71 octets
Essayez-le en ligne!
la source
f=lambda n,k=0:n and f(n-1,k+sum(632179420>>3*int(d)&7for d in`k`))or k
est le même nombre mais évite de sortir une liste englobante.MathGolf , 17 octets
Essayez-le en ligne!
Cela utilise la méthode d'Arnauld . Sort le nième élément de la séquence. Si la chaîne vide est correcte
a(0)
, alors nous pourrions supprimer le0\
au début.Explication:
la source
Pyth , 21 octets
Essayez-le en ligne ici .
la source
très probablement pas un seul octet dans la page de code de Pyth. (Je pense qu'il utilise UTF-8, auquel cas il fait 3 octets etj7163 3
a la même longueur; mais tio.run dit que Pyth a un SBCS. Mystérieux!)Rubis , 54 octets
Essayez-le en ligne!
la source
Java (JDK) , 95 octets
Essayez-le en ligne!
la source
JavaScript (Node.js) , 82 octets
Essayez-le en ligne!
la source
Gelée , 13 octets
Essayez-le en ligne!
0 indexé.
Programme complet; prend l'entrée de STDIN.
la source
Rouge ,
9995 octetsEssayez-le en ligne!
Juste une solution simple.
la source
J , 37 octets
Essayez-le en ligne!
Utilise la méthode d'Arnauld
Explication:
L'argument est
n
la source
Modifié après le 1er commentaire.
Imprime tous les termes
Scala, 76 octets
Essayez-le en ligne!
Imprime n e terme
Scala, 72 octets
Scala, 69 octets
Scala, 67 octets
Scala, 67 octets
Essayez-le en ligne!
la source
n
défini). Si vous connaissez Scala, c'est probablement facile à réparer. Notez également qu'il existe des conseils pour jouer au golf à Scala qui peuvent vous aider. Enfin, il est agréable de publier un lien vers un interprète en ligne, TIO a Scala et est utilisé par de nombreux membres du PPCG.