%I #32 Jan 18 2022 03:54:40
%S 1,1,1,1,2,1,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,
%T 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,
%U 4,1,9,8,7,6,6,11,5,14,9,4,15,11,7,3,3
%N Denominators of rational numbers as generated by the rules: 1 is in S, and if nonzero x is in S, then x+1 and -1/x are in S. (See Comments.)
%C Let S be the set of numbers defined by these rules: 1 is in S, and if nonzero x is in S, then x + 1 and -1/x are in S. Then S is the set of all rational numbers, produced in generations as follows: g(1) = (1), g(2) = (2, -1), g(3) = (3, -1/2, 0), g(4) = (4, -1/3, 1/2), ... For n > 4, 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.
%C A226130: Denominators of terms of S'
%C A226131: Numerators of terms of S'
%C A226136: Positions of positive integers in S'
%C A226137: Positions of integers in S'
%C The length of row n is given by A226275(n-1). - _Peter Kagey_, Jan 17 2022
%H Clark Kimberling, <a href="/A226130/b226130.txt">Table of n, a(n) for n = 1..1000</a>
%H <a href="/index/Fo#fraction_trees">Index entries for fraction trees</a>
%e The denominators and numerators are read from the rationals in S':
%e 1/1, 2/1, -1/1, 3/1, -1/2, 0/1, 4/1, -1/3, 1/2, ...
%e Table begins:
%e n |
%e --+-----------------------------------------------
%e 1 | 1;
%e 2 | 1, 1;
%e 3 | 1, 2, 1;
%e 4 | 1, 3, 2;
%e 5 | 1, 4, 3, 2, 1;
%e 6 | 1, 5, 4, 3, 2, 2, 3;
%e 7 | 1, 6, 5, 4, 3, 3, 5, 2, 5, 3;
%e 8 | 1, 7, 6, 5, 4, 4, 7, 3, 8, 5, 2, 7, 5, 3, 1;
%t g[1] := {1}; z = 20; g[n_] := g[n] = DeleteCases[Flatten[Transpose[{# + 1, -1/#}]]&[DeleteCases[g[n - 1], 0]], Apply[Alternatives, Flatten[Map[g, Range[n - 1]]]]]; Flatten[Map[g, Range[7]]] (* ordered rationals *)
%t Map[g, Range[z]]; Table[Length[g[i]], {i, 1, z}] (* cf. A003410 *)
%t f = Flatten[Map[g, Range[z]]];
%t Take[Denominator[f], 100] (* A226130 *)
%t Take[Numerator[f], 100] (* A226131 *)
%t p1 = Flatten[Table[Position[f, n], {n, 1, z}]] (* A226136 *)
%t p2 = Flatten[Table[Position[f, -n], {n, 0, z}]];
%t Union[p1, p2] (* A226137 *) (* _Peter J. C. Moses_, May 26 2013 *)
%o (Python)
%o from fractions import Fraction
%o from itertools import count, islice
%o def agen():
%o rats = [Fraction(1, 1)]
%o seen = {Fraction(1, 1)}
%o for n in count(1):
%o yield from [r.denominator for r in rats]
%o newrats = []
%o for r in rats:
%o f = 1+r
%o if f not in seen:
%o newrats.append(1+r)
%o seen.add(f)
%o if r != 0:
%o g = -1/r
%o if g not in seen:
%o newrats.append(-1/r)
%o seen.add(g)
%o rats = newrats
%o print(list(islice(agen(), 84))) # _Michael S. Branicky_, Jan 17 2022
%Y Cf. A226080 (rabbit ordering of positive rationals).
%Y Cf. A226130, A226131, A226136, A226137, A226275.
%Y Cf. A226247 (analogous with "0 is in S").
%K nonn,frac,tabf
%O 1,5
%A _Clark Kimberling_, May 28 2013