OFFSET
0,3
COMMENTS
From Antti Karttunen, Jun 22 2014: (Start)
Also called "Greedy Catalan Base" for short.
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.
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)].
3-digits cannot appear earlier than at the fifth digit-position from the right, the first example being a(126) = 30000.
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.
No two "odd" terms (ending with 1) may occur consecutively.
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.
A000108(n+1) gives the position of numeral where 1 is followed by n zeros.
A014138 gives the positions of repunits.
A197433 gives such k that a(k) = A239903(k). [Actually, such k, that the underlying strings of digits/numbers are same].
For the explanations, see the attached notes.
(End)
LINKS
Olivier Gérard (first 1001 terms) & Antti Karttunen, Table of n, a(n) for n = 0..16796
Georg Cantor, Über die einfachen Zahlensysteme, Zeitschrift fur Mathematik und Physik, 14 (1869), 121-128.
Aviezri S. Fraenkel, Systems of numeration, The American Mathematical Monthly, Vol. 92, No. 2 (Feb., 1985), pp. 105-114.
Antti Karttunen, A few notes on A014418
FORMULA
EXAMPLE
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:
a(11) = 201, and indeed 2*C(3) + 0*C(2) + 1*C(1) = 2*5 + 0*2 + 1*1 = 11.
a(126) = 30000, and indeed, 3*C(5) = 3*42 = 126.
MATHEMATICA
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 *)
PROG
(MIT/GNU Scheme, with memoizing definec-macro from Antti Karttunen's IntSeq-library)
;; Version based on direct recurrence:
(definec (A014418 n) (if (zero? n) n (+ (expt 10 (- (A244160 n) 1)) (A014418 (- n (A000108 (A244160 n)))))))
;; The following implementation first constructs a vector/list, to which further sequences may refer to:
(define (A014418 n) (baselist-as-decimal (A014418raw n)))
(define (A014418raw n) (vector->list (A014418raw_vector n)))
(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))))))))))
;; Antti Karttunen, Jun 22-23 2014
(Python)
from sympy import catalan
def a244160(n):
if n==0: return 0
i=1
while True:
if catalan(i)>n: break
else: i+=1
return i - 1
def a(n):
if n==0: return 0
x=a244160(n)
return 10**(x - 1) + a(n - catalan(x))
print([a(n) for n in range(51)]) # Indranil Ghosh, Jun 08 2017
CROSSREFS
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).
KEYWORD
nonn,base,easy
AUTHOR
EXTENSIONS
Description clarified by Antti Karttunen, Jun 22 2014
STATUS
approved