A246660 Run Length Transform of factorials.
1, 1, 1, 2, 1, 1, 2, 6, 1, 1, 1, 2, 2, 2, 6, 24, 1, 1, 1, 2, 1, 1, 2, 6, 2, 2, 2, 4, 6, 6, 24, 120, 1, 1, 1, 2, 1, 1, 2, 6, 1, 1, 1, 2, 2, 2, 6, 24, 2, 2, 2, 4, 2, 2, 4, 12, 6, 6, 6, 12, 24, 24, 120, 720, 1, 1, 1, 2, 1, 1, 2, 6, 1, 1, 1, 2, 2, 2, 6, 24, 1, 1, 1
Offset: 0
Links
Crossrefs
Programs
-
Mathematica
Table[Times @@ (Length[#]!&) /@ Select[Split[IntegerDigits[n, 2]], #[[1]] == 1&], {n, 0, 83}] (* Jean-François Alcover, Jul 11 2017 *)
-
PARI
A246660(n) = { my(i=0, p=1); while(n>0, if(n%2, i++; p = p * i, i = 0); n = n\2); p; }; for(n=0, 8192, write("b246660.txt", n, " ", A246660(n))); \\ Antti Karttunen, Sep 08 2014
-
Python
from operator import mul from functools import reduce from re import split from math import factorial def A246660(n): return reduce(mul,(factorial(len(d)) for d in split('0+',bin(n)[2:]) if d)) if n > 0 else 1 # Chai Wah Wu, Sep 09 2014
-
Sage
def RLT(f, size): L = lambda n: [a for a in Integer(n).binary().split('0') if a != ''] return [mul([f(len(d)) for d in L(n)]) for n in range(size)] A246660_list = lambda len: RLT(factorial, len) A246660_list(88)
-
Scheme
;; A stand-alone loop version, like the Pari-program above: (define (A246660 n) (let loop ((n n) (i 0) (p 1)) (cond ((zero? n) p) ((odd? n) (loop (/ (- n 1) 2) (+ i 1) (* p (+ 1 i)))) (else (loop (/ n 2) 0 p))))) ;; One based on given recurrence, utilizing memoizing definec-macro from my IntSeq-library: (definec (A246660 n) (cond ((zero? n) 1) ((even? n) (A246660 (/ n 2))) (else (* (A007814 (+ n 1)) (A246660 (/ (- n 1) 2)))))) ;; Yet another implementation, using fold: (define (A246660 n) (fold-left (lambda (a r) (* a (A000142 r))) 1 (bisect (reverse (binexp->runcount1list n)) (- 1 (modulo n 2))))) (definec (A000142 n) (if (zero? n) 1 (* n (A000142 (- n 1))))) ;; Other functions are as in A227349 - Antti Karttunen, Sep 08 2014
Formula
a(2^n-1) = n!.
a(0) = 1, a(2n) = a(n), a(2n+1) = a(n) * A007814(2n+2). - Antti Karttunen, Sep 08 2014
Comments