%I #56 Jun 06 2020 15:32:26
%S 0,1,10,11,20,100,101,110,111,120,200,201,210,211,1000,1001,1010,1011,
%T 1020,1100,1101,1110,1111,1120,1200,1201,1210,1211,2000,2001,2010,
%U 2011,2020,2100,2101,2110,2111,2120,2200,2201,2210,2211,10000
%N Representation of n in base of Catalan numbers (a classic greedy version).
%C From _Antti Karttunen_, Jun 22 2014: (Start)
%C Also called "Greedy Catalan Base" for short.
%C Note: unlike A239903, this is a true base system, thus A244158(a(n)) = n holds for all n. See also A244159 for another, "less greedy" Catalan Base number system.
%C No digits larger than 3 will ever appear, because C(n+1)/C(n) approaches 4 from below, but never reaches it. [Where C(n) is the n-th Catalan number, A000108(n)].
%C 3-digits cannot appear earlier than at the fifth digit-position from the right, the first example being a(126) = 30000.
%C The last digit is always either 0 or 1. (Cf. the sequences A244222 and A244223 which give the corresponding k for "even" and "odd" representations). No term ends as ...21.
%C No two "odd" terms (ending with 1) may occur consecutively.
%C A244217 gives the k for which a(k) starts with the digit 1, while A244216 gives the k for which a(k) starts with the digit 2 or 3.
%C A000108(n+1) gives the position of numeral where 1 is followed by n zeros.
%C A014138 gives the positions of repunits.
%C A197433 gives such k that a(k) = A239903(k). [Actually, such k, that the underlying strings of digits/numbers are same].
%C For the explanations, see the attached notes.
%C (End)
%H Olivier Gérard (first 1001 terms) & Antti Karttunen, <a href="/A014418/b014418.txt">Table of n, a(n) for n = 0..16796</a>
%H Georg Cantor, <a href="http://gdz.sub.uni-goettingen.de/dms/load/img/?PPN=PPN599415665_0014&DMDID=DMDLOG_0008&IDDOC=599174">Über die einfachen Zahlensysteme</a>, Zeitschrift fur Mathematik und Physik, 14 (1869), 121-128.
%H Aviezri S. Fraenkel, <a href="http://www.jstor.org/stable/2322638">Systems of numeration</a>, The American Mathematical Monthly, Vol. 92, No. 2 (Feb., 1985), pp. 105-114.
%H Antti Karttunen, <a href="/A014418/a014418.txt">A few notes on A014418</a>
%F From _Antti Karttunen_, Jun 23 2014: (Start)
%F a(0) = 0, a(n) = 10^(A244160(n)-1) + a(n-A000108(A244160(n))). [Here A244160 gives the index of the largest Catalan number that still fits into the sum].
%F a(n) = A007090(A244161(n)).
%F For all n, A000035(a(n)) = A000035(A244161(n)) = A244221(n).
%F (End)
%e A simple weighted sum of Sum_{k} digit(k)*C(k) [where C(k) = A000108(k), and digit(1) is the rightmost digit] recovers the natural number n (which the given numeral a(n) represents) as follows:
%e a(11) = 201, and indeed 2*C(3) + 0*C(2) + 1*C(1) = 2*5 + 0*2 + 1*1 = 11.
%e a(126) = 30000, and indeed, 3*C(5) = 3*42 = 126.
%t CatalanBaseIntDs[n_] := Module[{m, i, len, dList, currDigit}, i = 1; While[n > CatalanNumber[i], i++]; m = n; len = i; dList = Table[0, {len}]; Do[currDigit = 0; While[m >= CatalanNumber[j], m = m - CatalanNumber[j]; currDigit++]; dList[[len - j + 1]] = currDigit, {j, i, 1, -1}]; If[dList[[1]] == 0, dList = Drop[dList, 1]]; FromDigits@ dList]; Array [CatalanBaseIntDs, 50, 0] (* _Robert G. Wilson v_, Jul 02 2014 *)
%o (MIT/GNU Scheme, with memoizing definec-macro from Antti Karttunen's IntSeq-library)
%o ;; Version based on direct recurrence:
%o (definec (A014418 n) (if (zero? n) n (+ (expt 10 (- (A244160 n) 1)) (A014418 (- n (A000108 (A244160 n)))))))
%o ;; The following implementation first constructs a vector/list, to which further sequences may refer to:
%o (define (A014418 n) (baselist-as-decimal (A014418raw n)))
%o (define (A014418raw n) (vector->list (A014418raw_vector n)))
%o (define (A014418raw_vector n) (if (zero? n) (make-vector 0) (let ((catbasevec (make-vector (A244160 n) 0))) (let loop ((n n)) (cond ((zero? n) (vector-reverse catbasevec)) (else (let ((k (A244160 n))) (vector-set! catbasevec (- k 1) (+ 1 (vector-ref catbasevec (- k 1)))) (loop (- n (A000108 k))))))))))
%o ;; _Antti Karttunen_, Jun 22-23 2014
%o (Python)
%o from sympy import catalan
%o def a244160(n):
%o if n==0: return 0
%o i=1
%o while True:
%o if catalan(i)>n: break
%o else: i+=1
%o return i - 1
%o def a(n):
%o if n==0: return 0
%o x=a244160(n)
%o return 10**(x - 1) + a(n - catalan(x))
%o print([a(n) for n in range(51)]) # _Indranil Ghosh_, Jun 08 2017
%Y Cf. A014420 (gives the sum of digits), A244221 (same sequence reduced modulo 2, or equally, the last digit of a(n)), A244216, A244217, A244222, A244223, A000108, A007623, A197433, A239903, A244155, A244158, A244320, A244318, A244159 (a variant), A244161 (in base-4), A014417 (analogous sequence for Fibonacci numbers).
%Y Cf. also A033552, A176137, A161227, A161228.
%K nonn,base,easy
%O 0,3
%A _Olivier Gérard_
%E Description clarified by _Antti Karttunen_, Jun 22 2014