Inspiré par A014486 .
Défi
Étant donné une entrée entière dans la base 10, construisez une représentation pour la forêt binaire correspondant à l'entrée. Les représentations incluent, mais sans s'y limiter, les tableaux et chaînes imbriqués.
Comment?
Convertissez l'entrée en binaire. 1
s représentent des branches et 0
s représentent des feuilles.
Pour rendre cela plus facile à comprendre, utilisons 834
(1101000010 en binaire) comme exemple.
Nous commençons par le premier chiffre. Le premier chiffre est un 1
, nous dessinons donc des branches:
\ / 1
ou comme un tableau, {{1}}
Le chiffre suivant est 1
, donc nous dessinons plus de branches (nous allons de gauche à droite):
\ / 1 \ / 1
ou comme un tableau, {{1, {1}}}
Le chiffre suivant est 0
, nous plaçons donc une feuille:
0 \ / 1 \ / 1
ou comme un tableau, {{1, {1, 0}}}
Le chiffre suivant est un 1
, nous plaçons donc une branche:
\ / 0 1 \ / 1 \ / 1
ou comme un tableau, {{1, {1, 0, {1}}}}
En répétant le processus, nous obtenons l'arbre suivant après le 8ème chiffre:
0 0 \ / 0 1 \ / dix \ / 1
ou comme un tableau, {{1, {1, 0, {1, 0, 0}}, 0}}
Pour les chiffres restants, nous dessinons plus d'arbres:
Le 9ème chiffre est un 0
, donc nous plaçons une feuille (aww, c'est une jeune pousse!)
0 0 \ / 0 1 \ / dix \ / dix
ou comme un tableau, {{1, {1, 0, {1, 0, 0}}, 0}, 0}
Lorsque nous utilisons tous les chiffres, nous nous retrouvons avec ceci:
0 0 \ / 0 1 \ / 1 0 0 \ / \ / 1 0 1
ou comme un tableau, {{1, {1, 0, {1, 0, 0}}, 0}, 0, {1, 0}}
Cela a l'air bizarre, nous avons donc ajouté un zéro pour terminer l'arborescence:
0 0 \ / 0 1 \ / 1 0 0 0 \ / \ / 1 0 1
ou comme un tableau, {{1, {1, 0, {1, 0, 0}}, 0}, 0, {1, 0, 0}}
Notez que l'aplatissement du tableau donne le nombre d'origine en binaire, mais avec un zéro complété.
Critères
- La sortie doit clairement montrer la séparation des arbres et des branches (s'il ne s'agit pas d'un tableau imbriqué, veuillez expliquer votre format de sortie).
- L'extraction de tous les chiffres de la sortie doit être identique à la représentation binaire de l'entrée (avec le ou les zéros remplis du processus ci-dessus).
Cas de test
La sortie peut différer tant qu'elle répond aux critères.
0 -> {0} 1 -> {{1, 0, 0}} 44 -> {{1, 0, {1, {1, 0, 0}, 0}}} 63 -> {{1, {1, {1, {1, {1, {1, 0, 0}, 0}, 0}, 0}, 0}, 0}} 404 -> {{1, {1, 0, 0}, {1, 0, {1, 0, 0}}}} 1337 -> {{1, 0, {1, 0, 0}}, {1, {1, {1, 0, 0}, {1, 0, 0}}, 0}}
Notation
Il s'agit de code-golf , donc les octets les plus bas gagnent!