Étant donné un entier n
, affichez les premiers n
nombres binaires en pente, indexés 0 ou 1. Ils sont appelés ainsi en raison de la façon dont ils sont générés:
Écrivez les nombres en binaire les uns sous les autres (justifiés à droite):
........0
........1
.......10
.......11
......100
......101
......110
......111
.....1000
.........
Ensuite, vous devez prendre chaque diagonale du bas à gauche au haut à droite, de sorte que chaque chiffre final soit le dernier chiffre d'une diagonale. Voici la quatrième diagonale (indexée zéro) marquée par x
's, qui est100
:
........0
........1
.......10
.......11
......10x
......1x1
......x10
......111
.....1000
.........
Les diagonales inclinées vers le haut dans l'ordre sont:
0
11
110
101
100
1111
1010
.......
Ensuite, convertissez en décimal, donnant 0, 3, 6, 5, 4, 15, 10, ...
Il s'agit de code-golf , donc le code le plus court en octets l'emporte.
code-golf
sequence
base-conversion
binary
mbomb007
la source
la source
n
ou les premiersn+1
nombres?Réponses:
Gelée, 11 octets
Essayez-le en ligne!
Explication
La transposition est le moyen le plus simple de remplir le tableau pour que les diagonales intégrées fonctionnent. Ensuite, les revers sont ajoutés pour tout remettre dans le bon ordre.
la source
JavaScript (ES6), 53 octets
0 indexé. Ce n'est pas souvent que j'arrive à utiliser une fonction récursive comme paramètre
map
.la source
Mathematica, 46 octets
Fonction sans nom prenant un entier non négatif
#
en entrée et renvoyant la séquence d'index 0 jusqu'au#
terme. Construit les nombres binaires en pente en utilisantBitAnd
(bit à bit "et") avec les puissances appropriées de 2.la source
Python3,
6361 octetsUtilise la formule d'OEIS.
-2 octets grâce à Luis Mendo !
i+1
->i
la source
Sum_{ k >= 1 such that n + k == 0 mod 2^k } 2^k
à cette formule simple au niveau du bit?PHP, 68 octets
prend l'entrée de l'argument de la ligne de commande, imprime les nombres séparés par des traits de soulignement. Courez avec
-r
.la source
MATL ,
1817 octetsEssayez-le en ligne!
Il utilise la formule d'OEIS:
Code:
la source
Perl 6 ,
5943 octetsUtilise la formule de la page OESIS.
Mise à jour: Passé à la formule au niveau du bit et basée sur la réponse Python de TuukkaX .
Perl 6 , 67 octets
Solution naïve.
Convertit les nombres faisant partie de la diagonale en base 2, prend le chiffre correct de chacun et reconvertit le résultat en base 10.
la source
Gelée , 15 octets
Ce serait plus court que l'autre réponse Jelly si nous devions imprimer uniquement le n ème terme.
Essayez-le en ligne!
la source
R, 66 octets
Fonction sans nom qui utilise la
bin
fonction dumiscFuncs
package pour calculer la longueur den
représentée en binaire, puis en utilisant l'une des formules OEIS.la source