login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A246559
List of one-sided polyominoes in binary coding, ordered by number of bits, then value of the binary code. Can be read as irregular table with row lengths A000988.
5
0, 1, 3, 7, 11, 15, 23, 27, 30, 39, 54, 75, 31, 47, 55, 62, 79, 91, 94, 143, 181, 182, 188, 203, 286, 314, 406, 551, 566, 1099, 63, 95, 111, 126, 159, 175, 183, 189, 190, 207, 219, 221, 222, 252, 287, 303, 315, 318, 347, 350, 378, 407, 413, 476, 504
OFFSET
1,3
COMMENTS
The binary coding (as suggested in a post to the SeqFan list by F. T. Adams-Watters) is obtained by summing the powers of 2 corresponding to the numbers covered by the polyomino, when the points of the quarter-plane are numbered by antidiagonals, and the animal is pushed to both borders as to obtain the smallest possible value. See example for further details.
The smallest value for an n-omino is the sum 2^0+...+2^(n-1) = 2^n-1 = A000225(n), and the largest value, obtained for the straight n-omino (in x direction), is 2^0+2^1+2^3+...+2^A000217(n-1) = A181388(n-1).
LINKS
F. T. Adams-Watters, Re: Sequence proposal by John Mason, SeqFan list, Aug 24 2014
EXAMPLE
Number the points of the first quadrant as follows:
...
9 ...
5 8 ...
2 4 7 ...
0 1 3 6 10 ...
The "empty" 0-omino is represented by the empty sum equal to 0 = a(1).
The monomino is represented by a square on 0, and the binary code 2^0 = 1 = a(2).
The dominos ".." and ":" would be represented by 2^0+2^1 = 3 and 2^0+2^2 = 5. Since they are equivalent up to rotation, only 3 = a(3) is listed.
The A000988(3) = 2 one-sided trominoes are represented by 2^0+2^1+2^3 = 11 (...) and 2^0+2^1+2^2 = 7 (:.). Again these values are listed in increasing size as a(4) and a(5).
PROG
(PARI) rot(P, T=[0, 1; -1, 0])=P=Set(apply(x->x*T, P)); apply(x->x-[P[1][1], 0], P)
onesided(L, N=apply(p2n, L))={ local(L=L, R=apply(P->setsearch(L, rot(P)), L), cleanup(i)=my(m=N[i]); while(m!=N[i=R[i]], if( m>N[i], m=N[i], L[i]=0))); for(i=1, #L, L[i] && cleanup(i)); if(#L>1, select(P->P, L), L)}
for(i=0, 5, print(Set(apply(p2n, onesided(L=if(i, grow(L), [[]])))))) \\ see A246533 for grow() and p2n()
CROSSREFS
See A246521 and A246533 for enumeration of free and fixed polyominoes.
Sequence in context: A022800 A071849 A165197 * A246521 A160785 A095100
KEYWORD
nonn
AUTHOR
M. F. Hasler, Aug 29 2014
STATUS
approved