OFFSET
1,4
COMMENTS
The first Genealodron consists of one square.
The second Genealodron is formed by joining another equal-sized square to the left edge and to the right edge of the first so that the second Genealodron is made up of three squares.
The third Genealodron is formed by joining squares to the upper and lower edges of both the second and third square of the second Genealodron so that the third Genealodron is made up of seven squares.
The fourth Genealodron is formed by joining squares to the left and right edges of the fourth, fifth, sixth and seventh squares of the third Genealodron so that the fourth Genealodron has fifteen squares. The fourth Genealodron has the first overlaps, so although it contains 15 squares only 13 are seen when it is viewed from above.
The fifth Genealodron is formed by adding 16 more squares to the upper and lower edges of the last eight squares added to the fourth Genealodron so the fifth Genealodron has 31 squares, only 21 of which are seen when it is viewed from above because of the increasing number of overlaps.
The sixth Genealodron is formed by adding 32 more squares to the left and right edge of the last 16 squares added to the fifth Genealodron. So the sixth Genealodron has 63 squares only 31 of which are visible.
This continues, and the edges on which the new squares are added keep alternating between left and right and then upper and lower.
Gradually within the Genealodron, spirals are building counterclockwise and clockwise. The sequence that the Genealodron built with squares generates is different from the one built with equilateral triangles, because when a square is added, the spiral then turns through 90 degrees rather than just 60 degrees.
LINKS
Andrew Smith, Illustration of initial terms
PROG
(MATLAB)
%I solved the problem by representing each Genealodron as a matrix
n=input('how many terms?');
%preallocation of length of output (length n)
vec=zeros(1, n);
%below I initialize the first 3 terms which are easily done with pen and paper
vec(1)=1;
vec(2)=1;
vec(3)=1;
%imat is the intermediate matrix to go from 3rd to 4th matrix.
imat=[1, 0, 1; 0, 0, 0; 1, 0, 1];
%mat is the 3rd matrix
mat=[1, 0, 1; 1, 1, 1; 1, 0, 1];
%loop
for i=4:n
%when i is even
if mod(i, 2)==0
imat2=[zeros(i-1, 2), imat];
imat3=[imat, zeros(i-1, 2)];
%superposing two variations of previous intermediate matrix to get next one
imat=imat2+imat3;
%making mat same size as imat
mat=[zeros(i-1, 1), mat, zeros(i-1, 1)];
%calculating new matrix (=old matrix+intermediate)
mat=mat+imat;
%similarly when i is odd
else
imat2=[zeros(2, i); imat];
imat3=[imat; zeros(2, i)];
imat=imat2+imat3;
mat=[zeros(1, i); mat; zeros(1, i)];
mat=mat+imat;
end
%working out the maximum value of new matrix and allocating it to a position in the output vector
vec(i)=max(max(mat));
end
format long g
disp(vec)
CROSSREFS
KEYWORD
nonn,easy
AUTHOR
Andrew Smith, Dec 25 2017
STATUS
approved