%I #19 Feb 02 2024 15:18:12
%S 1,2,3,4,5,6,7,8,9,10,11,20,22,30,33,40,44,50,55,60,66,70,77,80,88,90,
%T 99,100,121,123,124,125,126,127,128,129,131,132,134,135,136,137,138,
%U 139,141,142,143,145,146,147,148,149,151,152,153,154,156,157,158
%N 2-concatenation-free sequence starting (1,2).
%C Starting with the terms (1,2) this sequence consists of minimum increasing terms such that no term is the concatenation of any two previous distinct terms. The next consecutive number skipped after 121 is 122 = Concatenate(1, 22). This is the analog of a 2-Stöhr sequence with concatenation (base 10) substituting for addition. A033627 "0-additive sequence: not the sum of any previous pair" is another name for the 2-Stöhr sequence.
%H Rémy Sigrist, <a href="/A114801/b114801.txt">Table of n, a(n) for n = 1..10000</a>
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/StoehrSequence.html">Stöhr Sequence.</a>
%H Rémy Sigrist, <a href="/A114801/a114801.gp.txt">PARI program for A114801</a>
%F a(0) = 1, a(1) = 2, for n>2: a(n) = least k > a(n-1) such that k is not an element of {Concatenate(a(i), a(j))} for any distinct a(i) <= a(n-1) and a(j) <= a(n-1).
%t conc[x_, y_] := FromDigits@ Flatten@ IntegerDigits[{x, y}]; L = {1, 2}; cc = {12, 21}; Do[k = 1 + Max@L; While[MemberQ[cc, k], k++]; cc = Union[cc, conc[#, k] & /@ L, conc[k, #] & /@ L]; AppendTo[L, k];, {65}]; L (* _Giovanni Resta_, Jun 15 2016 *)
%o (PARI) See Links section.
%o (Python)
%o from itertools import count, islice
%o def agen(): # generator of terms
%o cats1, cats2, an, s = {"1", "2"}, {"12", "21"}, 3, "3"
%o yield from [1, 2]
%o while True:
%o yield an
%o cats2 |= {s + c for c in cats1} | {c + s for c in cats1}
%o cats1.add(s)
%o while (s:=str(an)) in cats1 or s in cats2:
%o an += 1
%o print(list(islice(agen(), 59))) # _Michael S. Branicky_, Feb 01 2024
%Y Cf. A084383, A033627.
%K base,easy,nonn
%O 1,2
%A _Jonathan Vos Post_, Feb 18 2006
%E Data corrected by _Giovanni Resta_, Jun 14 2016
|