前書き
この課題では、2×2マトリックスに次のようにインデックスが付けられます。
0 1
2 3
フラクタルのようなパターンのファミリーを定義しますF(L)。ここでLは、nこれらのインデックスの長さリストであり、F(L)size を持ちます。2n-1 × 2n-1
- の場合
L == []、F(L)は1×1パターン#です。 の場合
L != []、F(L)次のように構築されます。ましょう最初の要素が削除されたPから取得されたパターンになりますL。ピリオドで満たされたサイズの4つのグリッドを取得し、インデックス付きのグリッドをパターンで置き換えます。次に、グリッドの間にハッシュの1つの層を使用してグリッドを接着します。以下に4つのケースの図を示します。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] ...#... ...#... #... ...#
例
入力を考慮してくださいL = [2,0]。1×1グリッドから始め、右から#横断Lします。一番右の要素は0なので、1×1グリッドのコピーを4つ取得し.、最初のコピーをに置き換え、#それらをハッシュで接着します。これにより、3×3グリッドが作成されます
##.
###
.#.
次の要素は2であるため、.sの3×3グリッドの4つのコピーを取得し、3番目のグリッドを上記のグリッドに置き換えます。4つのグリッドは
... ... ##. ...
... ... ### ...
... ... .#. ...
それらを#sと一緒に接着すると、7×7グリッドになります
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
これが最終出力です。
入力
入力はLインデックスのリストです0, 1, 2, 3。整数のリストまたは数字のストリングとして取得できます。空の場合があり、重複が含まれている場合があることに注意してください。の長さLは最大5です。
出力
出力は、F(L)改行区切り文字列としてのパターンです。
ルールとスコアリング
完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。
テストケース
[]
#
[0]
##.
###
.#.
[3]
.#.
###
.##
[2,0]
...#...
...#...
...#...
#######
##.#...
####...
.#.#...
[1,1]
...#.##
...####
...#.#.
#######
...#...
...#...
...#...
[1,2,0]
.......#...#...
.......#...#...
.......#...#...
.......########
.......###.#...
.......#####...
.......#.#.#...
###############
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
[3,3,1]
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
.......#.......
###############
.......#...#...
.......#...#...
.......#...#...
.......########
.......#...#.##
.......#...####
.......#...#.#.
[0,1,2,3]
.......#...#...#...............
.......#...#...#...............
.......#...#...#...............
.......#########...............
.......#.#.#...#...............
.......#####...#...............
.......#.###...#...............
################...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
.......#.......#...............
###############################
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
...............#...............
[0,0,1,2,3]
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#...#...#...............#...............................
.......#########...............#...............................
.......#.#.#...#...............#...............................
.......#####...#...............#...............................
.......#.###...#...............#...............................
################...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
.......#.......#...............#...............................
################################...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
...............#...............#...............................
###############################################################
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
...............................#...............................
L = [2,0]、頭を切り落としてパターンを見てF([0])から、頭を切り落とし[0]てパターンF([])(1x1グリッド)を見てください#。次に、その上で切り刻まれたインデックスを使用し0て3x3パターンを構築し、その上で切り刻まれたインデックスを使用し2て7x7パターンを構築します。あなたの質問に答えるには:はい、それは再帰の基本的なケースなので、常に1x1グリッドから始めます。
#ですか?L !=[]その例では、1つ以上の要素があるためです。これは、F(L)であることを意味して常に#最初に?