OFFSET
1,2
COMMENTS
The sequence starts with a(1) = 1 and is always extended with the smallest integer not yet present in the sequence and not leading to a contradiction.
By definition, Sum_{k=1..n} a(k) = c(n) = concatenation of the first n digits of the sequence, therefore a(n) = c(n) - c(n-1). For n > 2, this defines a(n) recursively, without the need for solving an implicit equation, as the definition might suggest. - M. F. Hasler, Feb 22 2018
From Michael S. Branicky, Dec 07 2020: (Start)
Each digit 0-9 eventually appears. The digit 1 appears first in a(1), 0 in a(2), 9 in a(3), 8 in a(12), 2 in a(68), 7 in a(71), 3 in a(2280), 6 in a(2283), 5 in a(2417), and 4 in a(4280).
All ten digits appear in each of a(4280) through a(121000).
Conjecture: a(n) contains all ten digits for n >= 4280. (End)
Conjecture holds through a(169000). - Michael S. Branicky, Jul 08 2022
LINKS
Michael S. Branicky, Table of n, a(n) for n = 1..1001 (terms 1..300 from Jean-Marc Falcoz)
FORMULA
a(n) = c(n) - c(n-1), where c(n) is the concatenation of the first n digits. c(n) ~ 1.1*10^(n-1), and a(n) ~ 0.999*10^(n-1). - M. F. Hasler, Feb 22 2018
EXAMPLE
1 + 10 = 11 which is the concatenation of 1 and 1.
1 + 10 + 99 = 110 which is the concatenation of 1, 1 and 0.
1 + 10 + 99 + 999 = 1109 which is the concatenation of 1, 1, 0 and 9.
Otherwise said:
a(3) = concat(1,1,0) - (1 + 10) = 110 - 11 = 99,
a(4) = concat(1,1,0,9) - (11 + 99) = 1109 - 110 = 999,
a(5) = concat(1,1,0,9,9) - 1109 = 11099 - 1109 = 9990,
a(6) = concat(1,1,0,9,9,9) - 11099 = 99900, etc. - M. F. Hasler, Feb 22 2018
MATHEMATICA
a[1]=1; a[2]=10; a[n_]:=a[n]=FromDigits[Flatten[IntegerDigits/@Table[a[k], {k, n-1}]][[;; n]]]-Total@Table[a[m], {m, n-1}];
Table[a[l], {l, 30}] (* Giorgos Kalogeropoulos, May 20 2019 *)
PROG
(PARI) a(n, show=1, a=1, c=a, d=[c])={for(n=2, n, show&&print1(a", "); a=-c+c=c*10+d[1]; d=concat(d[^1], if(n>2, digits(a)))); a} \\ M. F. Hasler, Feb 22 2018
(Python)
def a(n):
alist, c, ckm1 = [1, 10], "110", 11
for k in range(3, n+1):
ck = 10*ckm1 + int(c[k-1])
ak, ckm1 = ck - ckm1, ck
c += str(ak)
alist.append(ak)
return alist[n-1]
print([a(n) for n in range(1, 24)]) # Michael S. Branicky, Dec 07 2020
CROSSREFS
KEYWORD
nonn,base,nice,easy
AUTHOR
Eric Angelini, Feb 10 2018
STATUS
approved