Vous êtes aussi un programme qui prend un entier comme entrée et qui sort le premier quel que soit le nombre de la séquence de recherche et de représentation .
Par exemple:
$ ./LAS
8
[1,11,21,1211,111221,312211,13112221,1113213211]
La façon exacte dont vous affichez la liste est sans importance, tant que les utilisateurs peuvent voir distinctement les différents numéros de la séquence. Voici le hic cependant. Vous ne pouvez utiliser aucune sorte de variable définie par l'utilisateur.
Par exemple:
- Aucune variable, y compris les variables de portée.
- Lorsque vous avez des fonctions, elles ne peuvent pas avoir de nom. (Exception, si votre langue nécessite une fonction principale ou similaire pour fonctionner, vous pouvez avoir cette fonction.)
- Lorsque vous avez des fonctions, elles ne peuvent pas avoir d'arguments nommés.
En outre, vous ne pouvez pas utiliser une bibliothèque avec des capacités spécifiques liées à la séquence de recherche et de prononciation, et vous ne pouvez pas accéder au réseau, ni fournir à votre programme des fichiers (bien qu'il puisse générer et utiliser le sien.) Il s'agit du code golf, donc le code le plus court en caractères gagne!
la source
When you have functions, they can not have named arguments.
:?Réponses:
GolfScript (31 caractères)
Adapté de ma réponse à une précédente question de recherche et d'opinion . Celui-ci a une restriction moins onéreuse pour les langages fonctionnels, ce qui permet d'enregistrer 5 caractères, mais parce que la plupart des réponses à la question précédente ne peuvent pas être adaptées (c'est une restriction follement onéreuse pour les langages non fonctionnels) Je ne pense pas que cela ait du sens pour le fermer comme une dupe.
la source
Haskell 206 caractères
Il fonctionne en utilisant la fonction de groupe pour les regrouper en groupes de choses égales. Ensuite, il utilise des applicatifs avec des fonctions pour construire une fonction qui lit simultanément la longueur et l'ajoute à l'un des éléments. Il utilise un correctif et une carte pour créer une définition récursive (sans point). Et c'est parti.
la source
J (42 caractères)
La programmation sans point (également appelée tacite) est naturelle dans J.
C'est une fonction, pour l'utiliser, vous écrivez le code, un espace et le numéro d'entrée. Par exemple,
Remarquez les jolies cases dans la sortie.
Addendum : Voici quelques "tricheurs" que j'étais trop timide pour utiliser au début, mais maintenant que j'en ai vu d'autres les utiliser en premier ...
Voici une version de 36 caractères avec une "convention d'appel" différente: remplacez 8 par le nombre de termes que vous souhaitez.
Et si avoir des zéros supplémentaires dans la sortie est OK, voici une version 32 caractères:
la source
GolfScript, 36 caractères
Les variables sont assez rarement utilisées dans GolfScript, et cette tâche n'en a certainement pas besoin. L'entrée se fait sur stdin, la sortie sur stdout. Par exemple, l'entrée
8
donne la sortie:Je peux écrire une explication détaillée de ce code plus tard, mais au moins vous pouvez facilement dire qu'il n'utilise aucune variable du fait qu'il n'inclut l'opérateur d'affectation de variable
:
nulle part.la source
Haskell, 118 caractères (80 sans importations)
la source
Bash et coreutils,
11173 caractèresuniq -c
fait le gros du travail pour produire le numéro suivant de la séquence.yes
,sed
Eteval
créer le nombre nécessaire de répétitions du pipeline de traitement. Le reste n'est que du formatage.La sortie est placée dans un fichier appelé
o
.:la source
Mathematica, 65 caractères
Exemple:
la source
J, 37 caractères
Basé sur ma réponse à la question Pea Pattern . Il peut y avoir un potentiel de raccourcissement ici. L'utilisation est la même que pour l'autre réponse J:
Il y a aussi le problème de zéros supplémentaires que ma réponse au motif de pois avait.
la source
Perl 6:
6353 caractèresCréez une liste paresseuse de la séquence Look and Say (
1,*.subst(/(\d)$0*/,{.chars~.[0]},:g)...*
), puis obtenez autant d'éléments que spécifié par l'utilisateur ([^get]
, qui est un indice de tableau et signifie[0..(get-1)]
), etsay
tous.La liste paresseuse fonctionne en prenant d'abord 1, puis pour générer chaque nombre successif, elle prend le dernier qu'elle a trouvé et substitue toutes les séquences du même chiffre, comme apparié par
/(\d)$0*/
, et les remplace par {combien} + {quel chiffre} , ou.chars~.[0]
.Les seules variables de ce code sont
$0
la première capture de la correspondance et la$_
variable topique implicite qui met à nu l'.method
appel, et aucune d'entre elles n'est définie par l'utilisateur.la source
GolfScript,
5743 caractèresMa propre approche. A fini plus longtemps que l'existant malheureusement = (.
Exemple de sortie pour stdin de
8
:Version alternative sans
9
sentinelle, mais elle est plus longue avec 47 caractères. Je soupçonne qu'il a plus de potentiel:la source
Scala 178
la source
i
entréei=>
est une variable.Dyalog APL, 35 caractères
(⊢,⊂∘∊∘((≢,⊃)¨⊃⊂⍨2≢/0,⊃)∘⌽)⍣(⎕-1)⊢1
⎕
est évalué en entrée. Dans le lien, je l'ai remplacé par 8, car tryapl.org ne permet pas la saisie par l'utilisateur.Pas de variables nommées (
a←1
), pas de fonctions nommées (f←{}
), pas d'arguments (⍺
,⍵
).Seule composition des fonctions:
f¨
réduitf/
:, commute:f⍨
f⍣n
composer:f∘g
(f g h)B ←→ (f B)g(h B)
;A(f g h)B ←→ (A f B)g(A h B)
(f g)B ←→ f(g B)
;A(f g)B ←→ f(A g B)
(f g h k) ←→ (f (g h k))
Fonctions primitives utilisées:
A⊢B ←→ B
⌽B
⊃B
A,B
A≢B
compte:≢B
⊂B
partition:A⊂B
∊B
Dans tryapl.org, si vous supprimez la fin
⊢1
, qui est l'argument de cette chose composée massive, vous pouvez voir un diagramme de la façon dont elle est analysée:la source
J 66 (avec E / S)
sans IO, marque 43:
Drôle de question à vous poser, quand est-ce que les 9 premiers à apparaître?
la source