cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A360632 Number of sets of integer-sided rectangular pieces that can tile a 3 X n rectangle.

Original entry on oeis.org

1, 3, 10, 21, 73, 190, 510, 1196, 2895, 6437, 14281, 29840, 62405, 124506, 246383, 473094, 899000, 1665763, 3057894, 5500889, 9808150
Offset: 0

Views

Author

Pontus von Brömssen, Feb 14 2023

Keywords

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)
		

Crossrefs

Third column of A360629.
Cf. A000041 (1 x n rectangle), A360631 (2 x n rectangle).

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