|
|
A363348
|
|
Turn sequence of a non-Eulerian path for drawing an infinite aperiodic tiling based on the "hat" monotile. See the comments section for details.
|
|
2
|
|
|
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, -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, -3, 2, 3, -2, 3, -2, 3, 2, 0, 2, -3, 2, 3, 2, -3, -2, 3, 2, -3, 2, 3, -2, 3, -2
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
The curve can be drawn using turtle graphics rules. Each term of the sequence encodes an angle of rotation in units of (1/6)*Pi. For example, a(k) = 3 would mean a turn of 90 degrees to the left, a(k) = -2 a turn of 60 degrees to the right. To draw the tiling we draw a line of length l and then take a term of the sequence to determine the direction of further drawing by rotation relative to the current drawing orientation. The length of the line segments between terms of the sequence is either sqrt(3) or 1 units. We start by drawing with sqrt(3) units of length; every time we reach a term with 3 or -3 in the sequence we toggle the selected line length from sqrt(3) to 1, or back again from 1 to sqrt(3).
The drawing process works by recursion into the H8 metatile and its supertiles; this means a(1..14) draws a single "hat" monotile. Then the terms a(1..140) draw the H8 metatile and a(1..1588) and so forth (see formula section) draw the next next larger supertile of the H8 metatile. (For details regarding H8 see page 18 in arXiv:2303.10798.) The number of "hat" tiles visible after k recursions is Fibonacci(4*k + 2) (A033890); however, tiles and line segments will be overdrawn multiple times in this process.
|
|
LINKS
|
David Smith, Joseph Samuel Myers, Craig S. Kaplan, and Chaim Goodman-Strauss, An aperiodic monotile, arXiv:2303.10798 [math.CO], 2023.
|
|
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)), a(1..c1(k)-1), -a(c1(k)), a(c2(k)+1..L(k)), a(1..c3(k)-1), -a(c3(k)), a(c2(k)+1..L(k)), a(1..c3(k)-1), -a(c3(k)), a(c2(k)+1..L(k)), a(1..c4(k)-1), -a(c4(k)), a(c5(k)+1..L(k)), a(1..c3(k)-1), -a(c3(k)), a(c2(k)+1..L(k)), a(1..c3(k)-1), -a(c3(k)), a(c2(k)+1..L(k)), a(1..c4(k)-1), -a(c4(k)), a(c6(k)+1..L(k))}. With:
L(k) = 12*L(k-1) - 7*L(k-2) + L(k-3) for k > 3 with L(1..3) = {14, 140, 1588}.
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) = r5(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).
r8(k) = r12(k-1) + r8(k-1) + r14(k-1), with r8(1) = 1
r9(k) = r9(k-1) + r14(k-1), with r9(1) = 1.
r10(k) = 2*r13(k-1) + r10(k-1) + r11(k-1) + r14(k-1), with r10(1) = 1 (A061278).
r11(k) = 2*r13(k-1) + 3*r10(k-1) + r11(k-1), with r11(1) = 1.
r12(k) = r13(k-1) + r10(k-1), with r12(1) = 1.
r13(k) = r12(k-1) + r13(k-1) + r14(k-1), with r13(1) = 1.
r14(k) = r13(k-1) + 2*r10(k-1), with r14(1) = 1 (A108946 unsigned).
c1(k) = r2(k) + Sum_{m=1..k-1} (r9(k+1-m)*L(m)) = {6, 38, 374, 4204, ...}.
c2(k) = c1(k) - Sum_{m=1..k-1} L(m) = {6, 24, 220, 2462, ...}.
c3(k) = r2(k) + r3(k) + Sum_{m=1..k-1} ((r9(k+1-m) + r10(k+1-m) - 1)*L(m)) = {12, 116, 1282, 14572, ...}.
c4(k) = r2(k) + r4(k) + Sum_{m=1..k-1} ((r9(k+1-m) + r11(k+1-m) - 1)*L(m)) = {14, 138, 1550, 17630, ...}.
c5(k) = r2(k) + r7(k) + Sum_{m=1..k-1} ((r9(k+1-m) + r14(k+1-m) - 2)*L(m)) = {10, 66, 720, 8170, ...}.
c6(k) = c4(k) - Sum_{m=1..k-1} L(m) = {14, 124, 1396, 15888, ...}.
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.
|
|
EXAMPLE
|
We start by drawing a line of length sqrt(3):
___
We take then 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.)
|
|
PROG
|
(MATLAB) See link.
(PARI)
L(k) = { my(v = [0, 14, 140, 1588]); if(k > 3, return(12*L(k-1) - 7*L(k-2) + L(k-3)), 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))
r8(k) = if(k > 1, return(r12(k-1) + r8(k-1) + r14(k-1)), return(1))
r9(k) = if(k > 1, return(r9(k-1) + r14(k-1)), return(1))
r10(k) = if(k > 1, return(2*r13(k-1) + r10(k-1) + r11(k-1) + r14(k-1)), return(1))
r11(k) = if(k > 1, return(2*r13(k-1) + 3*r10(k-1) + r11(k-1)), return(1))
r12(k) = if(k > 1, return(r13(k-1) + r10(k-1)), return(1))
r13(k) = if(k > 1, return(r12(k-1) + r13(k-1) + r14(k-1)), return(1))
r14(k) = if(k > 1, return(r13(k-1) + 2*r10(k-1)), return(1))
c1(k) = r2(k) + sum(m=1, k-1, r9(k+1-m)*L(m))
c2(k) = c1(k) - sum(m=1, k-1, L(m))
c3(k) = r2(k) + r3(k) + sum(m=1, k-1, (r9(k+1-m) + r10(k+1-m) - 1)*L(m))
c4(k) = r2(k) + r5(k+1) + sum(m=1, k-1, (r9(k+1-m) + r11(k+1-m) - 1)*L(m))
c5(k) = r2(k) + r7(k) + sum(m=1, k-1, (r9(k+1-m) + r14(k+1-m) - 2)*L(m))
c6(k) = c4(k) - sum(m=1, k-1, L(m))
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[1..(c1(k)-1)], -a[c1(k)], a[(c2(k)+1)..L(k)], a[1..(c3(k)-1)], -a[c3(k)], a[(c2(k)+1)..L(k)], a[1..(c3(k)-1)], -a[c3(k)], a[(c2(k)+1)..L(k)], a[1..(c4(k)-1)], -a[c4(k)], a[(c5(k)+1)..L(k)], a[1..(c3(k)-1)], -a[c3(k)], a[(c2(k)+1)..L(k)], a[1..(c3(k)-1)], -a[c3(k)], a[(c2(k)+1)..L(k)], a[1..(c4(k)-1)], -a[c4(k)], a[(c6(k)+1)..L(k)]]) ); 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); }
|
|
CROSSREFS
|
Cf. A363445 describes a curve around the perimeter of this tiling.
|
|
KEYWORD
|
sign
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|