A360632 Number of sets of integer-sided rectangular pieces that can tile a 3 X n rectangle.
1, 3, 10, 21, 73, 190, 510, 1196, 2895, 6437, 14281, 29840, 62405, 124506, 246383, 473094, 899000, 1665763, 3057894, 5500889, 9808150
Offset: 0
Examples
From _Robin Visser_, May 01 2025: (Start) For n = 1, there are a(1) = 3 possible sets of rectangular pieces that can tile a 3 x 1 rectangle: one 1 x 3 piece; one 1 x 2 piece and one 1 x 1 piece; or three 1 x 1 pieces. For n = 2, there are a(2) = 10 possible sets of rectangular pieces that can tile a 3 x 2 rectangle: one 2 x 3 piece; one 2 x 2 piece and one 1 x 2 piece; one 2 x 2 piece and two 1 x 1 pieces; two 1 x 3 pieces; one 1 x 3 piece, one 1 x 2 piece, and one 1 x 1 piece; one 1 x 3 piece and three 1 x 1 pieces; three 1 x 2 pieces; two 1 x 2 pieces and two 1 x 1 pieces; one 1 x 2 piece and four 1 x 1 pieces; or six 1 x 1 pieces. (End)
Programs
-
Python
def a(n): A = [[[set() for i in range(n+1)] for j in range(n+1)] for k in range(n+1)] A[0][0][0].add(()); m = n+1; for (i,j,k) in [(x,y,z) for x in range(m) for y in range(m) for z in range(m)]: for (l,p) in [(x,y) for x in range(1,i+1) for y in A[i-x][j][k]]: A[i][j][k].add(tuple(sorted(list(p)+[(1,l)]))) for (l,p) in [(x,y) for x in range(1,j+1) for y in A[i][j-x][k]]: A[i][j][k].add(tuple(sorted(list(p)+[(1,l)]))) for (l,p) in [(x,y) for x in range(1,k+1) for y in A[i][j][k-x]]: A[i][j][k].add(tuple(sorted(list(p)+[(1,l)]))) for (l,p) in [(x,y) for x in range(1,min(i,j)+1) for y in A[i-x][j-x][k]]: if (i==j): A[i][j][k].add(tuple(sorted(list(p)+[tuple(sorted((2,l)))]))) for (l,p) in [(x,y) for x in range(1,min(j,k)+1) for y in A[i][j-x][k-x]]: if (j==k): A[i][j][k].add(tuple(sorted(list(p)+[tuple(sorted((2,l)))]))) for (l,p) in [(x,y) for x in range(1,min(i,j,k)+1) for y in A[i-x][j-x][k-x]]: if (i==j==k): A[i][j][k].add(tuple(sorted(list(p)+[tuple(sorted((3,l)))]))) return len(A[n][n][n]) # Robin Visser, May 01 2025
Extensions
a(17)-a(20) from Robin Visser, May 04 2025
a(0) = 1 prepended by Robin Visser, May 05 2025