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. 1s représentent des branches et 0s 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!