A286575 Run-length transform of A001316.
1, 2, 2, 2, 2, 4, 2, 4, 2, 4, 4, 4, 2, 4, 4, 2, 2, 4, 4, 4, 4, 8, 4, 8, 2, 4, 4, 4, 4, 8, 2, 4, 2, 4, 4, 4, 4, 8, 4, 8, 4, 8, 8, 8, 4, 8, 8, 4, 2, 4, 4, 4, 4, 8, 4, 8, 4, 8, 8, 8, 2, 4, 4, 4, 2, 4, 4, 4, 4, 8, 4, 8, 4, 8, 8, 8, 4, 8, 8, 4, 4, 8, 8, 8, 8, 16, 8, 16, 4, 8, 8, 8, 8, 16, 4, 8, 2, 4, 4, 4, 4, 8, 4, 8, 4, 8, 8, 8, 4
Offset: 0
Examples
For n = 0, there are no 1-runs, and thus a(0) = 1 as an empty product. For n = 29, "11101" in binary, there are two 1-runs, of lengths 1 and 3, thus a(29) = A001316(1) * A001316(3) = 2*4 = 8.
Links
Programs
-
Mathematica
Table[Times @@ Map[Sum[Mod[#, 2] &@ Binomial[#, k], {k, 0, #}] &@ Length@ # &, DeleteCases[Split@ IntegerDigits[n, 2], ?(First@ # == 0 &)]], {n, 0, 108}] (* _Michael De Vlieger, May 29 2017 *)
-
Python
from sympy import factorint, prime, log import math def wt(n): return bin(n).count("1") def a037445(n): f=factorint(n) return 2**sum([wt(f[i]) for i in f]) def A(n): return n - 2**int(math.floor(log(n, 2))) def b(n): return n + 1 if n<2 else prime(1 + (len(bin(n)[2:]) - bin(n)[2:].count("1"))) * b(A(n)) def a(n): return a037445(b(n)) # Indranil Ghosh, May 30 2017
-
Python
# use RLT function from A278159 def A286575(n): return RLT(n,lambda m: 2**(bin(m).count('1'))) # Chai Wah Wu, Feb 04 2022
-
Scheme
(define (A286575 n) (fold-left (lambda (a r) (* a (A001316 r))) 1 (bisect (reverse (binexp->runcount1list n)) (- 1 (modulo n 2))))) (define (bisect lista parity) (let loop ((lista lista) (i 0) (z (list))) (cond ((null? lista) (reverse! z)) ((eq? i parity) (loop (cdr lista) (modulo (1+ i) 2) (cons (car lista) z))) (else (loop (cdr lista) (modulo (1+ i) 2) z))))) (define (binexp->runcount1list n) (if (zero? n) (list) (let loop ((n n) (rc (list)) (count 0) (prev-bit (modulo n 2))) (if (zero? n) (cons count rc) (if (eq? (modulo n 2) prev-bit) (loop (floor->exact (/ n 2)) rc (1+ count) (modulo n 2)) (loop (floor->exact (/ n 2)) (cons count rc) 1 (modulo n 2))))))) (define (A001316 n) (let loop ((n n) (z 1)) (cond ((zero? n) z) ((even? n) (loop (/ n 2) z)) (else (loop (/ (- n 1) 2) (* z 2))))))