A250662 Number A(n,k) of tilings of a 2k X n rectangle using 2n k-ominoes of shape I; square array A(n,k), n>=0, k>=0, read by antidiagonals.
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 11, 1, 1, 1, 1, 1, 6, 36, 1, 1, 1, 1, 1, 1, 13, 95, 1, 1, 1, 1, 1, 1, 7, 22, 281, 1, 1, 1, 1, 1, 1, 1, 15, 64, 781, 1, 1, 1, 1, 1, 1, 1, 8, 25, 155, 2245, 1, 1, 1, 1, 1, 1, 1, 1, 17, 37, 321, 6336, 1, 1
Offset: 0
Examples
Square array A(n,k) begins: 1, 1, 1, 1, 1, 1, 1, 1, 1, ... 1, 1, 1, 1, 1, 1, 1, 1, 1, ... 1, 1, 5, 1, 1, 1, 1, 1, 1, ... 1, 1, 11, 6, 1, 1, 1, 1, 1, ... 1, 1, 36, 13, 7, 1, 1, 1, 1, ... 1, 1, 95, 22, 15, 8, 1, 1, 1, ... 1, 1, 281, 64, 25, 17, 9, 1, 1, ... 1, 1, 781, 155, 37, 28, 19, 10, 1, ... 1, 1, 2245, 321, 100, 41, 31, 21, 11, ...
Links
- Alois P. Heinz, Antidiagonals n = 0..100, flattened
- Wikipedia, Polyomino
Crossrefs
Programs
-
Maple
b:= proc(n, l) option remember; local d, k; d:= nops(l)/2; if n=0 then 1 elif min(l[])>0 then (m->b(n-m, map(x->x-m, l)))(min(l[])) else for k while l[k]>0 do od; `if`(n
d+1 or max(l[k..k+d-1][])>0, 0, b(n, [l[1..k-1][],1$d,l[k+d..2*d][]])) fi end: A:= (n, k)-> `if`(k=0, 1, b(n, [0$2*k])): seq(seq(A(n,d-n), n=0..d), d=0..14); -
Mathematica
b[n_, l_List] := b[n, l] = Module[{d = Length[l]/2, k}, Which[n == 0, 1, Min[l] > 0 , Function[{m}, b[n-m, l-m]][Min[l]], True, For[k=1, l[[k]] > 0, k++]; If[n
d]]] + If[d == 1 || k > d+1 || Max[l[[k ;; k+d-1]]] > 0, 0, b[n, Join[l[[1 ;; k-1]], Array[1&, d], l[[k+d ;; 2*d]]]]]]]; A[n_, k_] := If[k == 0, 1, b[n, Array[0&, 2k]]]; Table[Table[A[n, d-n], {n, 0, d}], {d, 0, 14}] // Flatten (* Jean-François Alcover, Jan 30 2015, after Alois P. Heinz *)