login
a(0) = 0, after which a(n) gives the total number of runs of the same length as the maximal run in the binary representation of a(n-1) [i.e., A043276(a(n-1))] among the binary expansions of all previous terms, including the runs in a(n-1) itself.
4

%I #10 Oct 25 2014 14:48:53

%S 0,1,2,4,1,6,2,9,3,4,5,15,1,16,2,19,7,1,21,26,8,2,32,1,34,3,9,10,43,

%T 11,12,14,4,15,3,16,4,17,5,58,6,18,19,21,71,8,9,22,23,10,84,24,11,26,

%U 27,29,12,31,2,99,13,34,14,15,5,108,37,38,40,16,6,41,42,130,3,43,44,46,17,18,47,7,19,49

%N a(0) = 0, after which a(n) gives the total number of runs of the same length as the maximal run in the binary representation of a(n-1) [i.e., A043276(a(n-1))] among the binary expansions of all previous terms, including the runs in a(n-1) itself.

%H Antti Karttunen, <a href="/A249146/b249146.txt">Table of n, a(n) for n = 0..10000</a>

%e a(0) = 0 (by definition), and 0 is also '0' in binary we consider it to contain a single run of length one.

%e For n = 1, we see that in a(0) there is one run of length 1, which is total number of runs of length 1 so far in terms a(0) .. a(n-1), thus a(1) = 1.

%e For n = 2, we see that the only and thus also the longest run of a(1) = 1 ('1' also in binary) has occurred two times in total (once in a(0) and a(1)), thus a(2) = 2.

%e For n = 3, we see that there are two runs in a(2) = 2 ('10' in binary), both one bit long, and so far there has occurred four such runs in total (namely once in a(0) and a(1), twice in a(2)), thus a(3) = 4.

%e For n = 4, we see that the longest run of a(3) = 4 ('100' in binary) is two bits long, and it is so far the first and only two-bit run in the sequence, thus a(4) = 1.

%e For n = 5, we see that the longest run of a(4) = 1 ('1' in binary) is one bit long, and so far there has occurred 6 such one-bit runs in terms a(0) .. a(4), thus a(5) = 6.

%e For n = 6, we see that the longest run of a(5) = 6 ('110' in binary) is two bits long, and so far there has occurred 2 such two bit runs (once in terms a(3) and a(5)), thus a(6) = 2.

%o (MIT/GNU Scheme with memoizing definec-macro from _Antti Karttunen_'s IntSeq-library)

%o (definec (A249146 n) (if (< n 2) n (vector-ref (A249146aux_runlen_counts (- n 1)) (-1+ (A043276 (A249146 (- n 1)))))))

%o ;; For binexp->runcount1list see for example A129594.

%o (definec (A249146aux_runlen_counts n) (cond ((zero? n) (vector 1)) (else (let* ((a_n (A249146 n)) (copy-of-prevec (vector-copy (A249146aux_runlen_counts (- n 1)))) (newsize (max (vector-length copy-of-prevec) (A043276 a_n))) (lencounts-for-n (vector-grow copy-of-prevec newsize))) (let loop ((runlens (binexp->runcount1list a_n))) (cond ((null? runlens) lencounts-for-n) (else (vector-set! lencounts-for-n (- (car runlens) 1) (+ 1 (or (vector-ref lencounts-for-n (- (car runlens) 1)) 0))) (loop (cdr runlens)))))))))

%Y Cf. A043276, A249145, A249144, A248034.

%K nonn

%O 0,3

%A _Antti Karttunen_, Oct 22 2014