OFFSET
1,1
COMMENTS
The polyomino may be represented as a sequence of the lengths of steps in the "ladder" of the polyomino: [2, 1] for L-tetromino, [2, 1, 2] for the next iteration, and so on. The overall width is the sum of these lengths. And on the next iteration, the new sequence of lengths of steps is formed from the previous one as: <previous sequence, reversed, with the first (after reversion) element removed> + <previous sequence, reversed>. So the sequence always consists of 1's and 2's only and therefore can be encoded as a binary string of length 2^n+1. This is exploited in the Python program below and explains the formula. - Andrey Zabolotskiy, Feb 14 2017
LINKS
Andrey Zabolotskiy, Table of n, a(n) for n = 1..3300
FORMULA
a(1) = 3, a(n) = 2*a(n-1) - k for n > 1, where k is the width of the central step in the "ladder", which is 1 or 2.
EXAMPLE
a(1) = 3
a(2) = 2 * 3 - 1 = 5
a(3) = 2 * 5 - 2 = 8
a(4) = 2 * 8 - 2 = 14
a(5) = 2 * 14 - 1 = 27
a(6) = 2 * 27 - 1 = 53
a(7) = 2 * 53 - 2 = 104
a(8) = 2 * 104 - 2 = 206
a(9) = 2 * 206 - 2 = 410
a(10) = 2 * 410 - 2 = 818
a(11) = 2 * 818 - 1 = 1635
a(12) = 2 * 1635 - 1 = 3269
a(13) = 2 * 3269 - 2 = 6536
a(14) = 2 * 6536 - 2 = 13070
a(15) = 2 * 13070 - 1 = 26139
a(16) = 2 * 26139 - 1 = 52277
a(17) = 2 * 52277 - 2 = 104552
a(18) = 2 * 104552 - 2 = 209102
PROG
(Python)
w, h, bp, bp2 = 3, 2, 0b10, 0b01
for i in range(1, 10):
print(w)
w, h, bp, bp2 = w*2-(2 if (bp&1) else 1), 2**i+1, ((bp2&((1<<(h-1))-1))<<h)+bp2, (bp<<(h-1))+(bp>>1)
for i in range(100):
print(w)
w, h, bp, bp2 = w*2-(2 if (bp&1) else 1), h-1, bp2, (bp>>1)
# Andrey Zabolotskiy, Feb 14 2017
CROSSREFS
KEYWORD
nonn
AUTHOR
Daniel Poveda Parrilla, Feb 14 2017
STATUS
approved