A023123 Signature sequence of e (arrange the numbers i+j*x (i,j >= 1) in increasing order; the sequence of i's is the signature of x).
1, 2, 3, 1, 4, 2, 5, 3, 6, 1, 4, 7, 2, 5, 8, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11, 3, 6, 9, 1, 12, 4, 7, 10, 2, 13, 5, 8, 11, 3, 14, 6, 9, 1, 12, 4, 15, 7, 10, 2, 13, 5, 16, 8, 11, 3, 14, 6, 17, 9, 1, 12, 4, 15, 7, 18, 10, 2, 13, 5, 16, 8, 19, 11, 3, 14, 6, 17, 9, 20, 1, 12, 4, 15, 7, 18, 10, 21, 2
Offset: 1
References
- Clark Kimberling, "Fractal Sequences and Interspersions", Ars Combinatoria, vol. 45 p 157 1997.
Links
- T. D. Noe, Table of n, a(n) for n=1..1000
- Clark Kimberling, Interspersions
- Index entries for sequences related to signature sequences
Programs
-
Mathematica
Quiet[Block[{$ContextPath}, Needs["Combinatorica`"]], {General::compat}] theta = E; sums = {0}; cached = <||>; A023123[i_] := Module[{term, path, base}, While[sums[[-1]] < i, term = sums[[-1]] + Floor[theta * (Length[sums] - 1)] + 1; AppendTo[sums, term]; cached[term] = 1 ]; path = {i}; While[Not[KeyExistsQ[cached, path[[-1]]]], AppendTo[path, path[[-1]] - Combinatorica`BinarySearch[sums, path[[-1]]] + 3/2]; ]; base = cached[path[[-1]]]; MapIndexed[(cached[#1] = base + Length[path] - First[#2]) &, path]; cached[i] ]; Print[Table[A023123[i], {i, 1, 100}]]; (* Brady J. Garvin, Sep 13 2024 *)
-
Python
from bisect import bisect from sympy import floor, E theta = E sums = [0] cached = {} def A023123(i): while sums[-1] < i: term = sums[-1] + floor(theta * (len(sums) - 1)) + 1 sums.append(term) cached[term] = 1 path = [i] while path[-1] not in cached: path.append(path[-1] - bisect(sums, path[-1]) + 1) base = cached[path[-1]] for offset, vertex in enumerate(reversed(path)): cached[vertex] = base + offset return cached[i] print([A023123(i) for i in range(1, 1001)]) # Brady J. Garvin, Sep 13 2024
Extensions
The a(47) term was missing. Corrected by T. D. Noe, Aug 12 2008
Comments