A363445 Turn sequence of a fractal-like curve which is also the perimeter around an aperiodic tiling based on the "hat" monotile. See the comments section for details.
3, -2, 3, -2, 3, 2, 0, 2, -3, 2, 3, 2, -3, 2, 3, -2, 3, -2, 3, -2, 0, 2, -3, 2, 3, -2, 0, 2, -3, 2, 3, -2, 0, 2, -3, 2, 3, 2, -3, -2, 3, -2, 0, 2, -3, 2, 3, -2, 0, 2, -3, 2, 3, 2, -3, -2, 3, -2, 3, -2, 3, -2, 0, 2, -3, -2, 3, -2, 0, 2, -3, 2, 3, -2, 0, 2, -3, 2, 3, 2, -3, -2, 3, -2, 0, 2, -3, -2
Offset: 1
Keywords
Examples
We start by drawing a line of length sqrt(3): ___ We then take the first term of the sequence, a(1) = 3: this means we turn our drawing turtle 90 degrees to the left and also switch to a length unit of 1. ___| We take the second term from the sequence, a(2) = -2: this means we turn our drawing turtle 60 degrees to the right, and we keep the selected line length of 1 unit. / ___| (In this ASCII representation, angles and length units are only symbolically represented and do not match the exact values in the description.)
Links
- Thomas Scheuerle, Table of n, a(n) for n = 1..2718
- David Smith, Joseph Samuel Myers, Craig S. Kaplan, and Chaim Goodman-Strauss, An aperiodic monotile, arXiv:2303.10798 [math.CO], 2023.
- Thomas Scheuerle, MATLAB program
- Thomas Scheuerle, a(1..140480) drawn out by turtle graphics. This is the result of the seventh iteration.
Crossrefs
Programs
-
MATLAB
% See Scheuerle link.
-
PARI
L(k) = { my(v = [0, 14, 56, 202]); if(k > 3,return(6*L(k-1) - 10*L(k-2) + 6*L(k-3) - L(k-4)),return(v[k+1])) } r1(k) = if(k > 1, return(r5(k-1) + r1(k-1) + r7(k-1)), return(6)) r2(k) = if(k > 1, return(r2(k-1) + r7(k-1)), return(6)) r3(k) = if(k > 1, return(2*r5(k-1) + r3(k-1) + r5(k) + r7(k-1)), return(6)) r5(k) = if(k > 1, return(r5(k-1) + r3(k-1)), return(2)) r7(k) = if(k > 1, return(r5(k-1) + 2*r3(k-1)), return(4)) c1(k) = r2(k) + L(k-1) c2(k) = r2(k) + r3(k) + L(k-1) c3(k) = r2(k) + r5(k+1) + L(k-1) c4(k) = r2(k) + r7(k) + L(k-1) a(NumIter) = { my(a = [3,-2, 3,-2, 3, 2, 0, 2, -3, 2, 3, 2,-3, 2]); for(k = 1, NumIter, a = concat([a, a[(L(k-1)+1)..(c1(k)-1)], -a[c1(k)], a[(c1(k)+1)..(c2(k)-1)], -a[c1(k)], a[(c1(k)+1)..(c2(k)-1)], -a[c1(k)], a[(c1(k)+1)..(c3(k)-1)], -a[c4(k)], a[(c4(k)+1)..(c2(k)-1)], -a[c1(k)], a[(c1(k)+1)..(c2(k)-1)], -a[c1(k)], a[(c1(k)+1)..(c3(k)-1)], -a[c3(k)], a[(c3(k)+1)..length(a)] ]) ); return(a) } draw(NumIter) = {my(p = [0, sqrt(3)]); my(dl = [1]); my(s = a(NumIter)); for(j=2,length(s), dl = concat(dl, ((dl[j-1]+(abs(s[j-1])==3))%2)); p = concat(p, p[j]+sqrt(1+2*dl[j])*exp(I*Pi*vecsum(s[1..j-1])*(1/6)) )); plothraw(apply(real,p),apply(imag,p), 1);}
Formula
a(1..14) = {3,-2, 3,-2, 3, 2, 0, 2, -3, 2, 3, 2,-3, 2} = a(1..L(1)) and for k > 0:
a(1..L(k+1)) = {a(1..L(k-1)), a(L(k)+1..c1(k)-1), -a(c1(k)), a(c1(k)+1..c2(k)-1), -a(c1(k)), a(c1(k)+1..c2(k)-1), -a(c1(k)), a(c1(k)+1..c3(k)-1), -a(c4(k)), a(c4(k)+1..c2(k)-1), -a(c1(k)), a(c1(k)+1..c2(k)-1), -a(c1(k)), a(c1(k)+1..c3(k)-1), -a(c3(k)), a(c3(k)+1..L(k))}. With:
L(k) = 6*L(k-1) - 10*L(k-2) + 6*L(k-3) - L(k-4), for k > 3 and L(0..3) = {0, 14, 56, 202}.
L(k) = L(k-1) + r1(k-1) + 3*r3(k-1) + 2*r4(k-1) + r6(k-1).
r1(k) = r5(k-1) + r1(k-1) + r7(k-1), with r1(1) = 6.
r2(k) = r2(k-1) + r7(k-1), with r2(1) = 6.
r3(k) = 2*r6(k-1) + r3(k-1) + r4(k-1) + r7(k-1), with r3(1) = 6 (A003699).
r4(k) = r6(k+1) = 2*r5(k-1) + 3*r3(k-1) + r4(k-1), with r4(1) = 8 (A052530).
r5(k) = r5(k-1) + r3(k-1), with r5(1) = 2. r4, r5, r6 are in the case of this tiling accidentally essentially the same recurrence.
r6(k) = r5(k) = r5(k-1) + r6(k-1) + r7(k-1), with r6(1) = 2 (A052530).
r7(k) = r6(k-1) + 2*r3(k-1), with r7(1) = 4 (A003500).
c1(k) = r2(k) + L(k) = {6, 24, 80, ...}.
c2(k) = r2(k) + r3(k) + L(k) = {12, 46, 162, ...}.
c3(k) = r2(k) + r4(k) + L(k) = {14, 54, 192, ...}.
c4(k) = r2(k) + r7(k) + L(k) = {10, 38, 132, ...}.
Description of curve position:
OrientationAngle(n) = Sum_{k = 1..n-1} a(k)*Pi*(1/6).
Xcoordinate(n) = Sum_{k = 1..n} cos(OrientationAngle(n))*sqrt(1 + 2*((1 + Sum_{k = 1..n-1} [abs(a(k)) = 3]) mod 2)).
Ycoordinate(n) = Sum_{k = 1..n} sin(OrientationAngle(n))*sqrt(1 + 2*((1 + Sum_{k = 1..n-1} [abs(a(k)) = 3]) mod 2)). [] is the Iverson bracket here.
For some nonnegative integers b and c:
OrientationAngle(L(b)) = OrientationAngle(L(c)).
Xcoordinate(L(b)) = Xcoordinate(L(c)).
Ycoordinate(L(b)) = Ycoordinate(L(c)).
Comments