introduction
Dans ce défi, une matrice 2 × 2 est indexée comme ceci:
0 1
2 3
Nous définissons une famille de modèles de type fractal F(L)
, où se L
trouve une n
liste de longueur de ces indices et F(L)
a une taille .2n-1 × 2n-1
- Si
L == []
, alorsF(L)
c'est le motif 1 × 1#
. Si
L != []
, alorsF(L)
est construit comme suit. SoitP
le motif obtenu à partir duL
premier élément supprimé. Prenez quatre grilles de taille remplies de points et remplacez la grille indexée par par le motif . Ensuite, collez les grilles ensemble en utilisant une couche de hachage entre elles. Voici des diagrammes pour les quatre cas:2n-1-1 × 2n-1-1
.
L[0]
P
#
L[0]==0 L[0]==1 L[0]==2 L[0]==3 #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...# ...#... ...#... ####### ####### ####### ####### ...#... ...#... #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...#
Exemple
Considérez l'entrée L = [2,0]
. Nous commençons par la grille 1 × 1 #
et traversons L
à droite. L'élément le plus à droite est 0
, nous prenons donc quatre copies de la grille 1 × 1 .
, remplaçons la première par #
et les collons avec des hachages. Il en résulte la grille 3 × 3
##.
###
.#.
L'élément suivant est 2
, nous prenons donc quatre copies de la grille 3 × 3 de .
s, et remplaçons le troisième par la grille ci-dessus. Les quatre grilles sont
... ... ##. ...
... ... ### ...
... ... .#. ...
et les coller ensemble avec #
les résultats s dans la grille 7 × 7
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
Ceci est notre résultat final.
Contribution
Votre entrée est une liste L
des indices 0, 1, 2, 3
. Vous pouvez le prendre comme une liste d'entiers ou une chaîne de chiffres. Notez qu'il peut être vide et qu'il peut contenir des doublons. La longueur de L
est au plus 5.
Production
Votre sortie est le modèle F(L)
sous forme de chaîne délimitée par des sauts de ligne.
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.
Cas de test
[]
#
[0]
##.
###
.#.
[3]
.#.
###
.##
[2,0]
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
[1,1]
...#.##
...####
...#.#.
#######
...#...
...#...
...#...
[1,2,0]
.......#...#...
.......#...#...
.......#...#...
.......########
.......###.#...
.......#####...
.......#.#.#...
###############
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
[3,3,1]
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
###############
.......#...#...
.......#...#...
.......#...#...
.......########
.......#...#.##
.......#...####
.......#...#.#.
[0,1,2,3]
.......#...#...#...............
.......#...#...#...............
.......#...#...#...............
.......#########...............
.......#.#.#...#...............
.......#####...#...............
.......#.###...#...............
################...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
###############################
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
[0,0,1,2,3]
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#########...............#...............................
.......#.#.#...#...............#...............................
.......#####...#...............#...............................
.......#.###...#...............#...............................
################...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
################################...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
###############################################################
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
L = [2,0]
, vous coupez la tête et regardez le motif F([0])
, puis coupez la tête [0]
et regardez le motif F([])
, qui est la grille 1x1 #
. Ensuite, vous utilisez l'index haché 0
dessus pour construire le motif 3x3, et utilisez l'index haché 2
sur celui-là pour construire le motif 7x7. Pour répondre à votre question: oui, vous commencez toujours par la grille 1x1 puisque c'est le cas de base de la récursivité.
#
?L !=[]
dans cet exemple, car il comporte 1 ou plusieurs éléments. Est-ce à dire que F (L) est toujours un#
au début?