   Main Page | See live article | Alphabetical index

A polyomino is a shape made by placing a particular number of squares of the same size in distinct locations on a plane in such a way that at least one edge of each square coincides with an edge of one of the remaining squares (ie the squares are simply connected). If the corner of any square touches the edge of another square at any place other than a corner, the result is not a polyomino. For each strictly positive natural number, n, there are a fixed number of distinct such arrangements of the n squares. For this purpose, a reflected form of a polyomino is not usually regarded as distinct from the original.

In some contexts the definition of a polyomino is relaxed. Sometimes polyominoes are generalised to three or more dimensions by aggregating cubes or hypercubes. For some applications mirror image forms are treated as distinct.

The numbers of configurations for small polyominos are listed below.

1 square: monomino: 1 configuration
2 squares: domino: 1
3 squares: triomino or tromino: 2
4 squares: tetromino: 5
5 squares: pentomino: 12
6 squares: hexomino: 35
7 squares: heptomino: 108 (107 excluding configurations with holes)
8 squares: octomino: 369 (361)
9 squares: nonomino: 1285
10 squares: decomino: 4655
11 squares: undecomino: 17073
12 squares: dodecomino: 63600

No formula for finding the exact number of polyominoes with n squares has been found.

Polyominoes composed of seven or more squares may contain holes (ie regions which are not tiled with squares but which are unconnected to the exterior of the polyomino).

Polyominoes have been used in popular puzzles since the late 19th century, but were first studied systematically by Solomon W. Golomb and were popularized by Martin Gardner. Related to polyominoes are polyamonds (formed from equilateral triangles) and polyhexes (formed from regular hexagons).

## An Algorithm for Enumerating all n-ominoes (polyominoes of n squares)

This procedure can be applied repeatedly starting from the monomino to reach any desired area of polyomino, but this becomes computationally expensive for large areas. For example finding all the dodecominoes using this algorithm consumes nearly 90 seconds of CPU time on a 1GHz pentium.  