Einführung
In dieser Herausforderung wird eine 2 × 2-Matrix wie folgt indiziert:
0 1
2 3
Wir definieren eine Familie von fraktalen Mustern F(L)
, wobei L
es sich um eine Längenliste n
dieser Indizes handelt und F(L)
die Größe hat .2n-1 × 2n-1
- Wenn ja
L == []
, dannF(L)
ist das 1 × 1-Muster#
. Wenn
L != []
, dannF(L)
ist wie folgt aufgebaut. SeiP
das Muster, von dem dasL
erste Element entfernt wurde. Nehmen Sie vier mit Punkten gefüllte Raster und ersetzen Sie das mit dem Muster indizierte Raster . Kleben Sie dann die Gitter zusammen, indem Sie eine Schicht Hashes dazwischen verwenden. Hier sind Diagramme für die vier Fälle: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] ...#... ...#... #... ...#
Beispiel
Betrachten Sie die Eingabe L = [2,0]
. Wir beginnen mit dem 1 × 1-Raster #
und überqueren es L
von rechts. Das am weitesten rechts stehende Element ist 0
, also nehmen wir vier Kopien des 1 × 1-Gitters .
, ersetzen das erste durch #
und kleben sie mit Hashes zusammen. Dies ergibt das 3 × 3-Raster
##.
###
.#.
Das nächste Element ist 2
, also nehmen wir vier Kopien des 3 × 3-Gitters von .
s und ersetzen das dritte durch das obige Gitter. Die vier Gitter sind
... ... ##. ...
... ... ### ...
... ... .#. ...
und kleben sie zusammen mit #
s ergibt das 7 × 7-Raster
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
Dies ist unsere endgültige Ausgabe.
Eingang
Ihre Eingabe ist eine Liste L
der Indizes 0, 1, 2, 3
. Sie können es als eine Liste von ganzen Zahlen oder eine Folge von Ziffern nehmen. Beachten Sie, dass es möglicherweise leer ist und Duplikate enthält. Die Länge von L
beträgt höchstens 5.
Ausgabe
Ihre Ausgabe ist das Muster F(L)
als durch Zeilenumbrüche getrennte Zeichenfolge.
Regeln und Wertung
Sie können ein vollständiges Programm oder eine Funktion schreiben. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Testfälle
[]
#
[0]
##.
###
.#.
[3]
.#.
###
.##
[2,0]
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
[1,1]
...#.##
...####
...#.#.
#######
...#...
...#...
...#...
[1,2,0]
.......#...#...
.......#...#...
.......#...#...
.......########
.......###.#...
.......#####...
.......#.#.#...
###############
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
[3,3,1]
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
###############
.......#...#...
.......#...#...
.......#...#...
.......########
.......#...#.##
.......#...####
.......#...#.#.
[0,1,2,3]
.......#...#...#...............
.......#...#...#...............
.......#...#...#...............
.......#########...............
.......#.#.#...#...............
.......#####...#...............
.......#.###...#...............
################...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
###############################
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
[0,0,1,2,3]
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#########...............#...............................
.......#.#.#...#...............#...............................
.......#####...#...............#...............................
.......#.###...#...............#...............................
################...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
################################...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
###############################################################
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
L = [2,0]
Sie hacken also den Kopf ab und sehen sich das Muster an F([0])
. Dann hacken Sie den Kopf ab [0]
und schauen sich das Muster an F([])
, das das 1x1-Gitter ist #
. Dann verwenden Sie den abgeschnittenen Index 0
, um das 3x3-Muster zu erstellen, und den abgeschnittenen Index 2
, um das 7x7-Muster zu erstellen. Um Ihre Frage zu beantworten: Ja, Sie beginnen immer mit dem 1x1-Raster, da dies der Grundfall der Rekursion ist.
#
?L !=[]
In diesem Beispiel hat es 1 oder mehrere Elemente. Bedeutet dies , dass F (L) ist immer eine#
auf den ersten?