前書き
この課題では、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)であることを意味して常に#
最初に?