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.

A210838 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.

Original entry on oeis.org

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, 23, 7, 9, -8, -6, -24, -22, -7, -39, 11, -21, -8, -2, -28, -22, -7, -43, 15, -65, -8, -88, -32, -64, -7, -39, 19, -65, -8, -92, -36, -64, -65, -35, -95, -65, -64, -96
Offset: 0

Views

Author

Omar E. Pol, Mar 28 2012

Keywords

Comments

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.
We start at stage 0 with no Q-toothpicks.
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.
At stage 2 we place a Q-toothpick of size 2 centered at (1,3) with its endpoints at (1,1) and (3,3).
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.
At stage 4 we place a Q-toothpick of size 4 centered at (0,10) with its endpoints at (0,6) and (-4,10).
And so on...

Examples

			-------------------------------------
Stage n also              The end as
the size of     Pair      inflection
Q-toothpick   (x    y)      point
-------------------------------------
.    0         0,   0,        -
.    1         1,   1,       Yes
.    2         3,   3,        -
.    3         0,   6,       Yes
.    4        -4,  10,        -
.    5         1,  15,        -
.    6         7,   9,       Yes
.    7        14,   2,        -
.    8        22,  10,        -
.    9        13,  19,        -
.   10         3,   9,       Yes
.   11        -8,  -2,        -
.   12       -20,  10,        -
.   13        -7,  23,        -
.   14         7,   9,        -
.   15        -8,  -6,       Yes
		

Crossrefs

Cf. A210841 (the same idea for primes).

Programs

  • Mathematica
    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}]]];
    A210838[100] (* Generates 101 coordinate pairs *) (* Paolo Xausa, Jan 12 2023 *)
  • PARI
    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;
    A210838(100) \\ Generates 101 coordinate pairs - Paolo Xausa, Jan 12 2023
    
  • Python
    from numpy import sign
    from sympy import integer_nthroot
    def A210838(nmax):
        ep, turn, infl = [(0, 0), (1, 1)], 1, 0
        for n in range(2, nmax + 1):
            ep1, ep2 = ep[-2], ep[-1]
            if integer_nthroot(((n - 1) << 3) + 1, 2)[1]: # Continue straight
                infl += 1
                dx = n * sign(ep2[0] - ep1[0])
                dy = n * sign(ep2[1] - ep1[1])
            else: # Turn
                if infl % 2: turn *= -1
                infl = 0
                dx = turn * n * sign(ep2[1] - ep1[1])
                dy = turn * n * sign(ep1[0] - ep2[0])
            ep.append((ep2[0] + dx, ep2[1] + dy))
        return ep[:nmax+1]
    print(A210838(100)) # Generates 101 coordinate pairs - Paolo Xausa, Jan 12 2023

Extensions

a(30)-a(33) corrected and more terms by Paolo Xausa, Jan 12 2023