La tâche
Compte tenu de l'ensemble
et un entier
trouver le Nième sous-ensemble.
Entrée sortie
N est donné sous la forme d'un entier non signé sur stdin. Vous devez imprimer le sous - ensemble Nième un format adapté à votre langue (cela peut inclure [1,2,3]
, {1,2,3}
, [1, 2, 3]
, 1 2 3
, 1,2,3
etc. , pour aussi longtemps qu'il est lisible texte le format).
Un peu sur les sous-ensembles
Il existe une relation entre les sous-ensembles et les nombres dans la base deux. Chaque chiffre
spécifie si le i ème élément de l'ensemble se trouve dans le sous-ensemble. Par exemple, 00000000 serait l'ensemble vide et 10000001 est le sous-ensemble contenant (le dernier et le premier élément). Vous obtenez le Nième sous-ensemble en convertissant le nombre en base 2, puis le sous-ensemble comprend tous les éléments où . Le 3ème sous-ensemble (3 = 00000011) contient donc . Le chiffre le plus à droite est le chiffre # 0. C'est ok pour imprimer . L'ensemble n'a pas besoin d'être trié.[1,8]
[1,2]
[2,1]
Addendums:
Oui, l'ensemble est fixé sur 1..8
. L'ensemble ne fait pas partie de l'entrée. L' entrée est juste N .
Oui, vous pouvez utiliser d'autres formulaires de saisie.
Toutes les sorties attendues pour tous les N : https://tio.run/##SyotykktLixN/f/fyNS02qIoP8soJd1CwSAg2kY32LPWPaoqs7jg/38A
1
destiné à8
, ou s'agit-il d'un ensemble?"123"
serait sans ambiguïté. Est-ce valable?Réponses:
Gelée , 3 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
R ,
5226 octetsEssayez-le en ligne!
Convertit l'entrée en ses bits et renvoie les indices basés sur 1 de l'endroit où ils se trouvent
TRUE
. Cela en fait un port de la réponse de Dennis 'Jelly .Renvoie
integer(0)
la liste vide d'entiers pour l'entrée de0
.la source
Python 2 , 40 octets
Essayez-le en ligne!
la source
Perl 6 , 33 octets
Essayez-le en ligne!
la source
Python 2 , 42 octets
Essayez-le en ligne!
la source
K4 , 7 octets
Solution:
Exemple:
10 premiers ...
Explication:
la source
MATLAB / Octave ,
312927 octetsréduit de 2 octets grâce aux alephalpha
réduit de 2 octets grâce à Giuseppe
Essayez-le en ligne!
la source
@(n)9-find(dec2bin(n,8)-48)
Japt, 7 octets
Essayez-le
Essayez-le
la source
Husk , 5 octets
Prend l'entrée comme argument de ligne de commande pas sur stdin ( j'espère que c'est ok ), essayez-le en ligne!
Explication
la source
Haskell ,
5554 octetsSort l'ensemble dans l'ordre inverse, essayez-le en ligne!
Version générale, 56 octets
Essayez-le en ligne!
Explication
Le terme
mapM (pure [0,1]) [1..n]
génère la liste (n=4
)[[0,0,0,0],[0,0,0,1],[0,0,1,0],..,[1,1,1,1]]
- ie. les représentations binaires de[0..2^n-1]
. L'indexation en elle avecn
nous donne la représentation binaire den
.Maintenant, nous pouvons juste le
zip
faire avec les nombres inversés[1..n]
et ne garder que les éléments où le chiffre binaire est différent de zéro:la source
Fusain , 11 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Si l'impression de la réponse horizontalement sans espaces est acceptable, le premier caractère peut être supprimé. Explication:
la source
JavaScript (ES6), 37 octets
+4 octets si un séparateur est obligatoire
+3 octets si ce séparateur est une virgule et une virgule de début est autorisée
Essayez-le en ligne!
la source
Perl 6 , 21 octets
Essayez-le en ligne!
Alternative:
la source
Lisp commun, 57 octets
Essayez-le en ligne!
la source
Haskell , 33 octets
Essayez-le en ligne!
37 octets
Essayez-le en ligne!
Cas de test de nimi.
la source
J ,
1310 octetsEssayez-le en ligne!
la source
Japt, 7 octets
Testez-le en ligne
Japt, 7 octets
Testez-le en ligne
la source
C # (Visual C # Interactive Compiler) , 47 octets
Essayez-le en ligne!
Cela ressemble maintenant à la solution Java, bien que j'aie trouvé la mienne indépendamment.
la source
Python 3.6, 58 octets
la source
Wolfram Language (Mathematica) , 32 octets
Essayez-le en ligne!
la source
Pari / GP , 31 octets
Essayez-le en ligne!
la source
APL + WIN, 13 octets
Invite pour N:
Essayez-le en ligne! Gracieuseté de Dyalog Classic
Explication:
Renvoie le sous-ensemble dans l'ordre inverse
la source
Burlesque - 8 octets
Essayez-le en ligne.
la source
Oracle SQL, 77 octets
Test dans SQL Plus
la source
MathGolf , 8 octets
Essayez-le en ligne!
Explication
Format de sortie alternatif
Avec un format de sortie plus flexible (que je pense personnellement très bon), je peux proposer un 6 octets:
Au lieu de mapper, j'utilise l'implicite pour chacun, et je saute l'aplatissement. La sortie ressemble à ceci:
la source
Rubis , 31 octets
Essayez-le en ligne!
la source
F # (Mono) , 45 octets
Essayez-le en ligne!
J'ai également implémenté une fonction générique / récursive, mais son assez moche et le nombre d'octets est beaucoup plus grand ...
F # (Mono) , 107 octets
Essayez-le en ligne!
la source
05AB1E , 6 octets
Essayez-le en ligne ou vérifiez tous les cas de test possibles .
Explication:
la source
Java 8, 58 octets
Essayez-le en ligne.
Explication:
la source