%I #12 Jan 02 2023 12:30:50
%S 0,1,3,7,11,15,23,27,30,39,54,75,31,47,55,62,79,91,94,143,181,182,188,
%T 203,286,314,406,551,566,1099,63,95,111,126,159,175,183,189,190,207,
%U 219,221,222,252,287,303,315,318,347,350,378,407,413,476,504
%N 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.
%C 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.
%C 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).
%H John Mason, <a href="/A246559/b246559.txt">Table of n, a(n) for n = 1..46575</a>
%H F. T. Adams-Watters, <a href="http://list.seqfan.eu/oldermail/seqfan/2014-August/013511.html">Re: Sequence proposal by John Mason</a>, SeqFan list, Aug 24 2014
%e Number the points of the first quadrant as follows:
%e ...
%e 9 ...
%e 5 8 ...
%e 2 4 7 ...
%e 0 1 3 6 10 ...
%e The "empty" 0-omino is represented by the empty sum equal to 0 = a(1).
%e The monomino is represented by a square on 0, and the binary code 2^0 = 1 = a(2).
%e 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.
%e 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).
%o (PARI) rot(P,T=[0,1;-1,0])=P=Set(apply(x->x*T,P));apply(x->x-[P[1][1],0],P)
%o 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)}
%o for(i=0,5,print(Set(apply(p2n,onesided(L=if(i,grow(L),[[]])))))) \\ see A246533 for grow() and p2n()
%Y See A246521 and A246533 for enumeration of free and fixed polyominoes.
%K nonn
%O 1,3
%A _M. F. Hasler_, Aug 29 2014
|