A054856
Number of ways to tile a 4 X n region with 1 X 1, 2 X 2, 3 X 3 and 4 X 4 tiles.
Original entry on oeis.org
1, 1, 5, 13, 40, 117, 348, 1029, 3049, 9028, 26738, 79183, 234502, 694476, 2056692, 6090891, 18038173, 53420041, 158203433, 468519406, 1387520047, 4109140098, 12169216863, 36039131181, 106729873498, 316080480394, 936072224321
Offset: 0
Silvia Heubach (silvi(AT)cine.net), Apr 21 2000
a(2)=5 as there is one tiling of a 4 X 2 region with only 1 X 1 tiles, 3 tilings with exactly one 2 X 2 tile and 1 tiling with exactly two 2 X 2 tiles.
-
a[0]:=1: a[1]:=1: a[2]:=5: a[3]:=13: a[4]:=40: for n from 5 to 26 do a[n]:=2*a[n-1]+3*a[n-2]-a[n-4]-a[n-5] od: seq(a[n],n=0..26); # Emeric Deutsch, Oct 16 2006
-
f[ A_ ] := Module[ {til = A, sum}, sum = 2* Apply[ Plus, Drop[ til, -4 ] ]; AppendTo[ til, A[ [ -1 ] ] + 4A[ [ -2 ] ] + 4A[ [ -3 ] ] + 3A[ [ -4 ] ] + sum ] ]; NumOfTilings[ n_ ] := Nest[ f, {1, 1, 5, 13}, n - 2 ]; 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.
Comments