%I #78 Feb 05 2023 13:48:33
%S 0,0,1,1,3,3,0,6,-4,10,1,15,7,9,14,2,22,10,13,19,3,9,-8,-2,-20,10,-7,
%T 23,7,9,-8,-6,-24,-22,-7,-39,11,-21,-8,-2,-28,-22,-7,-43,15,-65,-8,
%U -88,-32,-64,-7,-39,19,-65,-8,-92,-36,-64,-65,-35,-95,-65,-64,-96
%N Coordinates (x,y) of the endpoint of a structure (or curve) formed by Q-toothpicks of size = 1..n. The inflection points are the n-th nodes if n is a triangular number A000217.
%C It appears there is an infinite family of this type of curves or structures in which the terms of a sequence of positive integers are represented as inflection points and the gaps between them are essentially represented as nodes of spirals. For example: consider a structure formed by Q-toothpicks of size = Axxxxxa connected by their endpoints in which the inflection points are the exposed endpoints at stage Axxxxxb(n), where both Axxxxxa and Axxxxxb are sequences with positive integers. Also instead of Q-toothpicks we can use semicircumferences or also 3/4 of circumferences. For the definition of Q-toothpicks see A187210.
%C We start at stage 0 with no Q-toothpicks.
%C At stage 1 we place a Q-toothpick of size 1 centered at (1,0) with its endpoints at (0,0) and (1,1). Since 1 is a positive triangular number we have that the end of the curve is also an inflection point.
%C At stage 2 we place a Q-toothpick of size 2 centered at (1,3) with its endpoints at (1,1) and (3,3).
%C At stage 3 we place a Q-toothpick of size 3 centered at (0,3) with its endpoints at (3,3) and (0,6). Since 3 is a positive triangular number we have that the end of the curve is also an inflection point.
%C At stage 4 we place a Q-toothpick of size 4 centered at (0,10) with its endpoints at (0,6) and (-4,10).
%C And so on...
%H Paolo Xausa, <a href="/A210838/b210838.txt">Table of n, a(n) for n = 0..9999</a>
%H N. J. A. Sloane, <a href="http://oeis.org/wiki/Catalog_of_Toothpick_and_CA_Sequences_in_OEIS">Catalog of Toothpick and Cellular Automata Sequences in the OEIS</a>
%H Paolo Xausa, <a href="/A210838/a210838_2.gif">Animation of terms n = 0..41 (first 21 coordinate pairs)</a>, where orange dots are toothpick endpoints (hollow dots are inflection points) and blue dots are toothpick centers
%H Paolo Xausa, <a href="/A210838/a210838_1.gif">Animation of terms n = 0..507 (first 254 coordinate pairs)</a>
%H Paolo Xausa, <a href="/A210838/a210838.png">Scatterplot of 10^5 coordinate pairs</a>
%H <a href="/index/To#toothpick">Index entries for sequences related to toothpick sequences</a>
%e -------------------------------------
%e Stage n also The end as
%e the size of Pair inflection
%e Q-toothpick (x y) point
%e -------------------------------------
%e . 0 0, 0, -
%e . 1 1, 1, Yes
%e . 2 3, 3, -
%e . 3 0, 6, Yes
%e . 4 -4, 10, -
%e . 5 1, 15, -
%e . 6 7, 9, Yes
%e . 7 14, 2, -
%e . 8 22, 10, -
%e . 9 13, 19, -
%e . 10 3, 9, Yes
%e . 11 -8, -2, -
%e . 12 -20, 10, -
%e . 13 -7, 23, -
%e . 14 7, 9, -
%e . 15 -8, -6, Yes
%t A210838[nmax_]:=Module[{ep={0, 0}, angle=3/4Pi, turn=Pi/2, infl=0}, Join[{ep}, Table[If[n>1&&IntegerQ[Sqrt[8(n-1)+1]], infl++, If[Mod[infl, 2]==1, turn*=-1]; angle-=turn; infl=0]; ep=AngleVector[ep, {Sqrt[2]n, angle}], {n, nmax}]]];
%t A210838[100] (* Generates 101 coordinate pairs *) (* _Paolo Xausa_, Jan 12 2023 *)
%o (PARI)
%o A210838(nmax) = my(ep=vector(nmax+1), turn=1, infl=0, ep1, ep2); ep[1]=[0, 0]; if(nmax==0, return(ep)); ep[2]=[1, 1]; for(n=2, nmax, ep1=ep[n-1]; ep2=ep[n]; if(issquare((n-1)<<3+1), infl++; ep[n+1]=[ep2[1]+n*sign(ep2[1]-ep1[1]), ep2[2]+n*sign(ep2[2]-ep1[2])], if(infl%2, turn*=-1); infl=0; ep[n+1]=[ep2[1]-turn*n*sign(ep1[2]-ep2[2]), ep2[2]+turn*n*sign(ep1[1]-ep2[1])])); ep;
%o A210838(100) \\ Generates 101 coordinate pairs - _Paolo Xausa_, Jan 12 2023
%o (Python)
%o from numpy import sign
%o from sympy import integer_nthroot
%o def A210838(nmax):
%o ep, turn, infl = [(0, 0), (1, 1)], 1, 0
%o for n in range(2, nmax + 1):
%o ep1, ep2 = ep[-2], ep[-1]
%o if integer_nthroot(((n - 1) << 3) + 1, 2)[1]: # Continue straight
%o infl += 1
%o dx = n * sign(ep2[0] - ep1[0])
%o dy = n * sign(ep2[1] - ep1[1])
%o else: # Turn
%o if infl % 2: turn *= -1
%o infl = 0
%o dx = turn * n * sign(ep2[1] - ep1[1])
%o dy = turn * n * sign(ep1[0] - ep2[0])
%o ep.append((ep2[0] + dx, ep2[1] + dy))
%o return ep[:nmax+1]
%o print(A210838(100)) # Generates 101 coordinate pairs - _Paolo Xausa_, Jan 12 2023
%Y Cf. A210841 (the same idea for primes).
%Y Cf. A000217, A005132, A187210, A210606, A211000, A211011.
%K sign,look,hear
%O 0,5
%A _Omar E. Pol_, Mar 28 2012
%E a(30)-a(33) corrected and more terms by _Paolo Xausa_, Jan 12 2023