cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

Showing 1-2 of 2 results.

A325803 Nonzero terms of Product_{k=0..floor(log_2(n))} (1 + A004718(floor(n/(2^k)))).

Original entry on oeis.org

1, 2, 6, -6, 24, -18, -48, 120, 18, -72, -192, 48, -360, 720, 54, 144, -360, 384, -960, 144, -1800, 720, -2880, 5040, -54, 216, 576, -144, 1080, -2160, 1536, -384, 2880, -5760, -144, 576, 5400, -10800, 2880, -720, -17280, 8640, -25200, 40320, -162, -432, 1080
Offset: 1

Views

Author

Mikhail Kurkov, May 22 2019

Keywords

Comments

See A329893.

Crossrefs

Programs

  • Mathematica
    a[n_?EvenQ] := a[n] = -a[n/2]; a[0] = 0; a[n_] := a[n] = a[(n - 1)/2] + 1; DeleteCases[Table[Product[ 1 + a[Floor[n/(2^k)]], {k, 0, Floor[Log2[n]]}], {n, 0, 200}], 0] (* Michael De Vlieger, Apr 22 2024, after Jean-François Alcover at A004718 *)
  • PARI
    b(n) = if(n==0, 0, (-1)^(n+1)*b(n\2) + n%2); \\ A004718
    f(n) = if(n==0, 1, prod(k=0, logint(n,2), 1+b(n\2^k)));
    lista(nn) = for (n=0, nn, if (f(n), print1(f(n), ", "))); \\ Michel Marcus, May 26 2019
    
  • Python
    from itertools import count, islice
    from math import prod
    def A325803_gen(): # generator of terms
        for n in count(0):
            c, s = [0]*(m:=n.bit_length()), bin(n)[2:]
            for i in range(m):
                if s[i]=='1':
                    for j in range(m-i):
                        c[j] = c[j]+1
                else:
                    for j in range(m-i):
                        c[j] = -c[j]
            if (k:=prod(1+d for d in c)): yield k
    A325803_list = list(islice(A325803_gen(),20)) # Chai Wah Wu, Mar 03 2023

Formula

a(n) = A329893(A325804(n)). - Antti Karttunen, Dec 10 2019

Extensions

Comments and two formulas moved to A329893, which is an "uncompressed" version of this sequence. - Antti Karttunen, Dec 11 2019

A329893 a(n) = Product_{k=0..floor(log_2(n))} (1 + A004718(floor(n/(2^k)))), where A004718 is Per Nørgård's "infinity sequence".

Original entry on oeis.org

1, 2, 0, 6, 0, 0, -6, 24, 0, 0, 0, 0, -18, 0, -48, 120, 0, 0, 0, 0, 0, 0, 0, 0, 18, -72, 0, 0, -192, 48, -360, 720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 144, -360, 0, 0, 0, 0, 384, -960, 144, 0, -1800, 720, -2880, 5040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -54, 216
Offset: 0

Views

Author

Antti Karttunen (after Mikhail Kurkov's A325803), Dec 10 2019 [verification needed]

Keywords

Comments

The composer Per Nørgård's name is also written in the OEIS as Per Noergaard.
From Mikhail Kurkov, May 22 2019 (comments originally given in A325803): (Start)
Number of positive terms on the interval 2^m <= n < 2^(m+1) for m > 0 equals f(m-1,2,1) (and f(m-1,4,3) for negative) with f(m,g,h) = binomial(m, floor(m/2) + floor((m+g)/4) - floor((m+h)/4)), so total number of nonzero terms equals binomial(m, floor(m/2)) = A001405(m).
Sum_{n=0..2^m-1} a(n) = 3^m, m >= 0.
More generally, if we define a(n,k) = (-1)^(n+1)*a(floor(n/k),k) + n mod k, a(0,k) = 0, so Sum_{n=0..k^m-1} Product_{i=0..floor(log_k(n))} (1 + a(floor(n/(k^i)),k)) = binomial(k+1, 2)^m for any k = 2p, p > 0.
(End) [verification needed]

Crossrefs

Cf. A001405, A004718, A325803 (nonzero terms), A325804 (their positions).
Cf. also A284005, A293233.

Programs

  • Mathematica
    f[n_?EvenQ] := f[n] = -f[n/2]; f[0] = 0; f[n_] := f[n] = f[(n - 1)/2] + 1; Table[Product[1 + f[Floor[n/(2^k)]], {k, 0, Floor[Log2[n]]}], {n, 0, 120}]  (* Michael De Vlieger, Apr 22 2024, after Jean-François Alcover at A004718 *)
  • PARI
    up_to = 65537;
    A004718list(up_to) = { my(v=vector(up_to)); v[1]=1; v[2]=-1; for(n=3, up_to, v[n] = if(n%2, 1+v[n>>1], -v[n/2])); (v); }; \\ After code in A004718.
    v004718 = A004718list(up_to);
    A004718(n) = if(!n,n,v004718[n]);
    A329893(n) = { my(m=1); while(n, m *= 1+A004718(n); n >>= 1); (m); };
    
  • Python
    from math import prod
    def A329893(n):
        c, s = [0]*(m:=n.bit_length()), bin(n)[2:]
        for i in range(m):
            if s[i]=='1':
                for j in range(m-i):
                    c[j] = c[j]+1
            else:
                for j in range(m-i):
                    c[j] = -c[j]
        return prod(1+d for d in c) # Chai Wah Wu, Mar 03 2023

Formula

a(0) = 1; for n > 1, a(n) = (1+A004718(n)) * a(floor(n/2)).
a(n) = Product_{k=0..floor(log_2(n))} (1 + A004718(floor(n/(2^k)))).
a(A325804(n)) = A325803(n).
Showing 1-2 of 2 results.