login
A226247
Let S be the set of numbers defined by these rules: 0 is in S; if x is in S, then x+1 is in S, and if nonzero x is in S, then -1/x are in S. (See Comments.)
10
1, 1, 1, 1, 1, 2, 1, 3, 2, 1, 4, 3, 2, 1, 1, 5, 4, 3, 2, 2, 3, 1, 6, 5, 4, 3, 3, 5, 2, 5, 3, 1, 7, 6, 5, 4, 4, 7, 3, 8, 5, 2, 7, 5, 3, 1, 1, 8, 7, 6, 5, 5, 9, 4, 11, 7, 3, 11, 8, 5, 2, 2, 9, 7, 5, 3, 3, 4, 1, 9, 8, 7, 6, 6, 11, 5, 14, 9, 4, 15, 11, 7, 3, 3
OFFSET
1,6
COMMENTS
Let S be the set of numbers defined by these rules: 0 is in S; if x is in S, then x+1 is in S, and if nonzero x is in S, then -1/x are in S. Then S is the set of all rational numbers, produced in generations as follows:
g(1) = (0), g(2) = (1), g(3) = (2, -1), g(4) = (3, -1/2), g(5) = (4, -1/3, 1/2), ... For n > 2, once g(n-1) = (c(1), ..., c(z)) is defined, g(n) is formed from the vector (c(1)+1, -1/c(1), c(2)+1, -1/c(2), ..., c(z)+1, -1/c(z)) by deleting previously generated elements.
Let S'' denote the sequence formed by concatenating the generations.
A226247: Denominators of terms of S''
A226248: Numerators of terms of S''
A226249: Positions of nonnegative numbers in S''
A226250: Positions of positive numbers in S''
A closely related sequence S' (for which the rules of generation are shorter but the resulting sequence is slightly less natural) is discussed at A226130. For both S' and S'', the number of numbers in g(n) is given by A097333.
EXAMPLE
The denominators and numerators are read from S'':
0/1, 1/1, 2/1, -1/1, 3, -1/2, 4/1, -1/3, 1/2, 5, -1/4, 2/3, 3/2, -2, ...
Table begins:
n |
--+-----------------------------------------------
1 | 1;
2 | 1;
3 | 1, 1;
4 | 1, 2;
5 | 1, 3, 2;
6 | 1, 4, 3, 2, 1;
7 | 1, 5, 4, 3, 2, 2, 3;
8 | 1, 6, 5, 4, 3, 3, 5, 2, 5, 3;
9 | 1, 7, 6, 5, 4, 4, 7, 3, 8, 5, 2, 7, 5, 3, 1;
MATHEMATICA
z = 12; g[1] := {0}; g[2] := {1}; g[n_] := g[n] = DeleteCases[Flatten[Transpose[{# + 1, -1/#}]] &[g[n - 1]], Apply[Alternatives, Flatten[Map[g, Range[n - 1]]]]]; f = Flatten[Map[g, Range[z]]]; Take[Denominator[f], 100] (*A226247*)
t = Take[Numerator[f], 100] (*A226248*)
s[n_] := If[t[[n]] > 0, 1, 0]; u = Table[s[n], {n, 1, Length[t]}]
Flatten[Position[u, 1]] (*A226249*)
p = Flatten[Position[u, 0]] (*A226250*) (* Peter J. C. Moses, May 30 2013 *)
PROG
(Python)
from fractions import Fraction
from itertools import count, islice
def agen():
rats = [Fraction(0, 1)]
seen = {Fraction(0, 1)}
for n in count(1):
yield from [r.denominator for r in rats]
newrats = []
for r in rats:
f = 1+r
if f not in seen:
newrats.append(1+r)
seen.add(f)
if r != 0:
g = -1/r
if g not in seen:
newrats.append(-1/r)
seen.add(g)
rats = newrats
print(list(islice(agen(), 84))) # Michael S. Branicky, Jan 17 2022
CROSSREFS
Cf. A226080 (rabbit ordering of positive rationals), A226130.
Sequence in context: A141671 A309596 A335442 * A233742 A194856 A278703
KEYWORD
nonn,easy,tabf
AUTHOR
Clark Kimberling, Jun 01 2013
STATUS
approved