Votre tâche consiste à prendre un n
élément n
d' entrée et de sortie de la séquence de rami, une séquence que j'ai faite (regarder OEIS ne vous aidera pas).
Définition
Chaque élément de la séquence du rami est un ensemble de valeurs véridiques ou falsey. Ex [true, false]
. : .
Les étapes pour produire un membre de la séquence de rami sont assez simples:
- Commencez avec le premier index
[]
(c'est l'élément 0). - Réglez la falsey la plus à gauche sur la vérité. S'il n'y a pas de faux à modifier, augmentez la longueur de la liste de 1 et définissez tous les membres de la nouvelle liste sur falsey.
- Répétez l'étape 2 jusqu'à atteindre l'élément
n
.
Exemple
Définissons notre fonction comme rummy(int n)
(le contenu {}
est une étape pour arriver à la réponse):
>>> rummy(5)
{[]}
{[false]}
{[true]}
{[false, false]}
{[true, false]}
[true, true]
Règles
- Des échappatoires standard s'appliquent.
- Doit fonctionner pour les entrées 0 via la limite numérique supérieure de votre langue.
- Vous pouvez sortir de n'importe quelle manière, à condition qu'il soit clair que la sortie est un ensemble de vérités / faux.
Trivia
J'appelle cela la "séquence du rami", car, à partir de l'index 2, elle définit les ensembles que vous devez définir dans chaque manche de rami progressif , où falsey est un livre et vérité est une course.
Cas de test
>>> rummy(0)
[]
>>> rummy(1)
[false]
>>> rummy(6)
[false, false, false]
>>> rummy(20)
[true, true, true, true, true]
>>> rummy(1000)
[true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]
code-golf
math
array-manipulation
Addison Crump
la source
la source
1
à11
, vous obtenez000
au lieu de100
. ; P1*0*
.Réponses:
JavaScript ES6,
949272706664 octets6 octets enregistrés grâce à Neil!
Je ne pense pas que cela puisse être joué davantage. Au moins avec les équations.
Explication
Ce sont deux équations principales (en
n
entrée):Cela donnera la taille totale du tableau de sortie. Dans mon programme, j'ai utilisé à la
>>1
place de(...)/2
ceux-ci sont les mêmes que le premier bit en binaire a une valeur de 2. Le décalage entraînerafloor(.../2)
C'est le nombre de
true
s qu'il y aura.a
est le résultat de l'expression précédente.C'est ce que fait la syntaxe:
Ce code génère un tableau avec plage
[0, n)
dans cette réponsen
est la première équation..map((_,l)=>l<n)
cela va parcourir la plage ci-dessus,l
est la variable contenant l'élément en cours dans la plage. Si l'élément est inférieur au nombre de vrais qu'ils sont (déterminé par la deuxième équation), alors il reviendratrue
, sinonfalse
.la source
>>1
au lieu de/2|0
. Utilisez(_,l)=>
au lieu de.keys()
.Array.from()
?, Fill ou autre chose?[...Array(a)].map((_,l)=>)
ce que je crois être légèrement plus court, mais bonne prise en supprimant certains des()
s lors du passage à>>1
, je n'avais pas repéré ça!a*-~a/2
; Je ne sais pas pourquoi je n'y avais pas pensé avant.Python, 51 octets
Affiche une liste de 1 et de 0.
la source
Pyth, 8 octets
Essayez-le en ligne: démonstration ou suite de tests
C'est exponentiellement lent.
Explication:
la source
Gelée ,
1311 octetsLe code ne fonctionnait pas dans la dernière version de Jelly avant la publication du défi, mais il fonctionnait dans cette version , antérieure au défi.
Les indices sont basés sur 1. Essayez-le en ligne! (prend quelques secondes) ou vérifiez plusieurs entrées à la fois .
Comment ça fonctionne
la source
05AB1E, 27 octets
Va voir si je peux jouer au golf un peu plus et ajouter une explication le matin.
Essayez-le en ligne
la source
Java,
117110 octetscréé mon propre type booléen, ce qui m'a permis d'économiser 7 octets
la source
Python 2,
6963 octetsTestez-le sur Ideone .
la source
Python 2, 61 octets
Résout pour n = j · (j + 1) / 2 . L'entrée provient de stdin.
Exemple d'utilisation
Démo .
la source
APL (Dyalog Extended) , 21 octets SBCS
Essayez-le en ligne!
la source