cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

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.

This page as a plain text file.
%I A363348 #68 Sep 01 2025 03:09:40
%S A363348 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,
%T A363348 -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,
%U A363348 -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
%N 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.
%C A363348 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).
%C A363348 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 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.
%H A363348 Thomas Scheuerle, <a href="/A363348/b363348.txt">Table of n, a(n) for n = 1..1588</a>
%H A363348 Thomas Scheuerle, <a href="/A363348/a363348.m.txt">MATLAB program</a>
%H A363348 Thomas Scheuerle, <a href="/A363348/a363348.png">1st iteration: drawing of a(1..140)</a> (results in 8 "hat" tiles).
%H A363348 Thomas Scheuerle, <a href="/A363348/a363348_1.png">2nd iteration: drawing of a(1..1588)</a> (results in 55 "hat" tiles).
%H A363348 Thomas Scheuerle, <a href="/A363348/a363348_2.png">3rd iteration: drawing of a(1..206104)</a> (results in 377 "hat" tiles).
%H A363348 Thomas Scheuerle, <a href="/A363348/a363348_3.png">4th iteration: drawing of a(1..2462272)</a> (results in 2584 "hat" tiles).
%H A363348 David Smith, Joseph Samuel Myers, Craig S. Kaplan, and Chaim Goodman-Strauss, <a href="https://arxiv.org/abs/2303.10798">An aperiodic monotile</a>, arXiv:2303.10798 [math.CO], 2023.
%F A363348 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:
%F A363348 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:
%F A363348 L(k) = 12*L(k-1) - 7*L(k-2) + L(k-3) for k > 3 with L(1..3) = {14, 140, 1588}.
%F A363348 r1(k) = r5(k-1) + r1(k-1) + r7(k-1), with r1(1) = 6.
%F A363348 r2(k) = r2(k-1) + r7(k-1), with r2(1) = 6.
%F A363348 r3(k) = 2*r6(k-1) + r3(k-1) + r4(k-1) + r7(k-1), with r3(1) = 6 (A003699).
%F A363348 r4(k) = r5(k+1) = 2*r5(k-1) + 3*r3(k-1) + r4(k-1), with r4(1) = 8 (A052530).
%F A363348 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.
%F A363348 r6(k) = r5(k) = r5(k-1) + r6(k-1) + r7(k-1), with r6(1) = 2 (A052530).
%F A363348 r7(k) = r6(k-1) + 2*r3(k-1), with r7(1) = 4 (A003500).
%F A363348 r8(k) = r12(k-1) + r8(k-1) + r14(k-1), with r8(1) = 1
%F A363348 r9(k) = r9(k-1) + r14(k-1), with r9(1) = 1.
%F A363348 r10(k) = 2*r13(k-1) + r10(k-1) + r11(k-1) + r14(k-1), with r10(1) = 1 (A061278).
%F A363348 r11(k) = 2*r13(k-1) + 3*r10(k-1) + r11(k-1), with r11(1) = 1.
%F A363348 r12(k) = r13(k-1) + r10(k-1), with r12(1) = 1.
%F A363348 r13(k) = r12(k-1) + r13(k-1) + r14(k-1), with r13(1) = 1.
%F A363348 r14(k) = r13(k-1) + 2*r10(k-1), with r14(1) = 1 (A108946 unsigned).
%F A363348 c1(k) = r2(k) + Sum_{m=1..k-1} (r9(k+1-m)*L(m)) = {6, 38, 374, 4204, ...}.
%F A363348 c2(k) = c1(k) - Sum_{m=1..k-1} L(m) = {6, 24, 220, 2462, ...}.
%F A363348 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, ...}.
%F A363348 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, ...}.
%F A363348 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, ...}.
%F A363348 c6(k) = c4(k) - Sum_{m=1..k-1} L(m) = {14, 124, 1396, 15888, ...}.
%F A363348 Description of curve position:
%F A363348   OrientationAngle(n) = Sum_{k = 1..n-1} a(k)*Pi*(1/6).
%F A363348 Xcoordinate(n) = Sum_{k = 1..n} cos(OrientationAngle(n))*sqrt(1 + 2*((1 + Sum_{k = 1..n-1} [abs(a(k)) = 3]) mod 2)).
%F A363348 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.
%e A363348 We start by drawing a line of length sqrt(3):
%e A363348 ___
%e A363348 We take then the first term of the sequence a(1) = 3 this means
%e A363348 we turn our drawing turtle 90 degrees to the left and also switch to a length unit of 1.
%e A363348 ___|
%e A363348 We take the second term from the sequence a(2) = -2 this means
%e A363348 we turn our drawing turtle 60 degrees to the right, and we keep the selected line length of 1 unit.
%e A363348     /
%e A363348 ___|
%e A363348 (In this ASCII representation, angles and length units are only symbolically represented and do not match the exact values in the description.)
%o A363348 (MATLAB) % See Scheuerle link.
%o A363348 (PARI)
%o A363348 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])) }
%o A363348 r1(k) = if(k > 1, return(r5(k-1) + r1(k-1) + r7(k-1)), return(6))
%o A363348 r2(k) = if(k > 1, return(r2(k-1) + r7(k-1)), return(6))
%o A363348 r3(k) = if(k > 1, return(2*r5(k-1) + r3(k-1) + r5(k) + r7(k-1)), return(6))
%o A363348 r5(k) = if(k > 1, return(r5(k-1) + r3(k-1)), return(2))
%o A363348 r7(k) = if(k > 1, return(r5(k-1) + 2*r3(k-1)), return(4))
%o A363348 r8(k) = if(k > 1, return(r12(k-1) + r8(k-1) + r14(k-1)), return(1))
%o A363348 r9(k) = if(k > 1, return(r9(k-1) + r14(k-1)), return(1))
%o A363348 r10(k) = if(k > 1, return(2*r13(k-1) + r10(k-1) + r11(k-1) + r14(k-1)), return(1))
%o A363348 r11(k) = if(k > 1, return(2*r13(k-1) + 3*r10(k-1) + r11(k-1)), return(1))
%o A363348 r12(k) = if(k > 1, return(r13(k-1) + r10(k-1)), return(1))
%o A363348 r13(k) = if(k > 1, return(r12(k-1) + r13(k-1) + r14(k-1)), return(1))
%o A363348 r14(k) = if(k > 1, return(r13(k-1) + 2*r10(k-1)), return(1))
%o A363348 c1(k) = r2(k) + sum(m=1, k-1, r9(k+1-m)*L(m))
%o A363348 c2(k) = c1(k) - sum(m=1, k-1, L(m))
%o A363348 c3(k) = r2(k) + r3(k) + sum(m=1, k-1, (r9(k+1-m) + r10(k+1-m) - 1)*L(m))
%o A363348 c4(k) = r2(k) + r5(k+1) + sum(m=1, k-1, (r9(k+1-m) + r11(k+1-m) - 1)*L(m))
%o A363348 c5(k) = r2(k) + r7(k) + sum(m=1, k-1, (r9(k+1-m) + r14(k+1-m) - 2)*L(m))
%o A363348 c6(k) = c4(k) - sum(m=1, k-1, L(m))
%o A363348 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) }
%o A363348 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); }
%Y A363348 Cf. A363445 describes a curve around the perimeter of this tiling.
%Y A363348 Cf. A003500, A003699, A033890, A052530, A061278, A108946.
%K A363348 sign,changed
%O A363348 1,1
%A A363348 _Thomas Scheuerle_, May 28 2023