A054857
Number of ways to tile a 5 X n region with square tiles of size up to 5 X 5.
Original entry on oeis.org
1, 1, 8, 28, 117, 472, 1916, 7765, 31497, 127707, 517881, 2100025, 8515772, 34532063, 140030059, 567832091, 2302600696, 9337214060, 37863085664, 153537580071, 622606110920, 2524713292359, 10237896957896, 41515420557135
Offset: 0
Silvia Heubach (silvi(AT)cine.net), Apr 21 2000
a(2) = 8 as there is 1 tiling of a 5 X 2 region with only 1 X 1 tiles, 4 tilings with exactly one 2 X 2 tile and 3 tilings with exactly two 2 X 2 tiles.
-
f[ {A_, B_} ] := Module[ {til = A, basic = B}, {Flatten[ Append[ til, ListConvolve[ A, B ] ] ], AppendTo[ basic, B[ [ -1 ] ] + B[ [ -2 ] ] + B[ [ -3 ] ] ]} ]; NumOfTilings[ n_ ] := Nest[ f, {{1, 1, 8, 28, 117, 472, 1916, 7765}, {1, 7, 13, 20, 35, 66, 118, 218}}, n - 2 ][ [ 1 ] ] NumOfTilings[ 30 ]
A226545
Number A(n,k) of squares in all tilings of a k X n rectangle using integer-sided square tiles; square array A(n,k), n>=0, k>=0, read by antidiagonals.
Original entry on oeis.org
0, 0, 0, 0, 1, 0, 0, 2, 2, 0, 0, 3, 5, 3, 0, 0, 4, 12, 12, 4, 0, 0, 5, 25, 34, 25, 5, 0, 0, 6, 50, 98, 98, 50, 6, 0, 0, 7, 96, 256, 386, 256, 96, 7, 0, 0, 8, 180, 654, 1402, 1402, 654, 180, 8, 0, 0, 9, 331, 1625, 4938, 6940, 4938, 1625, 331, 9, 0
Offset: 0
A(3,3) = 1 + 6 + 6 + 6 + 6 + 9 = 34:
._____. ._____. ._____. ._____. ._____. ._____.
| | | |_| |_| | |_|_|_| |_|_|_| |_|_|_|
| | |___|_| |_|___| |_| | | |_| |_|_|_|
|_____| |_|_|_| |_|_|_| |_|___| |___|_| |_|_|_|
Square array A(n,k) begins:
0, 0, 0, 0, 0, 0, 0, 0, ...
0, 1, 2, 3, 4, 5, 6, 7, ...
0, 2, 5, 12, 25, 50, 96, 180, ...
0, 3, 12, 34, 98, 256, 654, 1625, ...
0, 4, 25, 98, 386, 1402, 4938, 16936, ...
0, 5, 50, 256, 1402, 6940, 33502, 157279, ...
0, 6, 96, 654, 4938, 33502, 221672, 1426734, ...
0, 7, 180, 1625, 16936, 157279, 1426734, 12582472, ...
Columns (or rows) k=0-10 give:
A000004,
A001477,
A067331(n-1) for n>0,
A226546,
A226547,
A226548,
A226549,
A226550,
A226551,
A226552,
A226553.
-
b:= proc(n, l) option remember; local i, k, s, t;
if max(l[])>n then [0,0] elif n=0 or l=[] then [1,0]
elif min(l[])>0 then t:=min(l[]); b(n-t, map(h->h-t, l))
else for k do if l[k]=0 then break fi od; s:=[0$2];
for i from k to nops(l) while l[i]=0 do s:=s+(h->h+[0, h[1]])
(b(n, [l[j]$j=1..k-1, 1+i-k$j=k..i, l[j]$j=i+1..nops(l)]))
od; s
fi
end:
A:= (n, k)-> `if`(n>=k, b(n, [0$k]), b(k, [0$n]))[2]:
seq(seq(A(n, d-n), n=0..d), d=0..14);
-
b[n_, l_List] := b[n, l] = Module[{i, k, s, t}, Which[Max[l] > n, {0, 0}, n == 0 || l == {}, {1, 0}, Min[l] > 0, t=Min[l]; b[n-t, l-t], True, k = Position[l, 0, 1][[1, 1]]; s={0, 0}; For[i=k, i <= Length[l] && l[[i]] == 0, i++, s = s + Function[h, h+{0, h[[1]]}][b[n, Join[l[[1 ;; k-1]], Table[1+i-k, {j, k, i}], l[[i+1 ;; -1]]]]] ]; s]]; a[n_, k_] := If[n >= k, b[n, Array[0&, k]], b[k, Array[0&, n]]][[2]]; Table[Table[a[n, d-n], {n, 0, d}], {d, 0, 14}] // Flatten (* Jean-François Alcover, Dec 13 2013, translated from Maple *)
Showing 1-2 of 2 results.