OFFSET
0,6
COMMENTS
Local maxima values minus 1 are divisible by 4.
For a digit-wise recurrence, it's convenient to sum n terms so b(n) = a(n-1) = Sum_{i=0..n-1} A334841(i). Then b(4n+r) = 4*b(n) + r*A334841(n) + (1 if r even), for 0 <= r <= 3 and 4n+r >= 1. This is 4 copies of terms 0..n-1 and r copies of the following n. The new lowest digits cancel when r is odd, or net +1 when r is even. Repeatedly expanding gives the PARI code below. - Kevin Ryde, Jun 02 2020
EXAMPLE
n in #odd #even
n base 4 digits - digits + a(n-1) = a(n)
= ====== ===============================
0 0 0 - 0
1 1 1 - 0 + 0 = 1
2 2 0 - 1 + 1 = 0
3 3 1 - 0 + 0 = 1
4 10 1 - 1 + 1 = 1
5 11 2 - 0 + 1 = 3
6 12 1 - 1 + 3 = 3
7 13 2 - 0 + 3 = 5
MAPLE
a:= proc(n) option remember; `if`(n=0, 0, a(n-1) +add(
`if`(i in [1, 3], 1, -1), i=convert(n, base, 4)))
end:
seq(a(n), n=0..80); # Alois P. Heinz, May 30 2020
MATHEMATICA
f[n_] := Total[(-1)^(r = Range[0, 3]) * DigitCount[n, 4, r]]; a[0] = 0; a[n_] := a[n] = a[n - 1] - f[n]; Array[a, 100, 0] (* Amiram Eldar, Apr 24 2020 *)
PROG
(R)
qnary = function(n, e, q){
e = floor(n/4)
q = n%%4
if(n == 0 ){return(0)}
if(e == 0){return(q)}
else{return(c(qnary(e), (q)))}
}
m = 400
s = seq(2, m)
v = c(0)
for(i in s){
x = qnary(i-1)
x[which(x%%2!=0)] = 1
x[which(x%%2==0)] = -1
v[i] = sum(x, v[i-1])
}
(Python)
import numpy as np
def qnary(n):
e = n//4
q = n%4
if n == 0 : return 0
if e == 0 : return q
if e != 0 : return np.append(qnary(e), q)
m = 400
v = [0]
for i in range(1, m+1) :
t = np.array(qnary(i))
t[t%2 != 0] = 1
t[t%2 == 0] = -1
v = np.append(v, np.sum([np.sum(t), v[i-1]]))
(PARI) a(n) = my(v=digits(n+1, 4), s=0); for(i=1, #v, my(t=v[i]); v[i]=t*s+!(t%2); s-=(-1)^t); fromdigits(v, 4); \\ Kevin Ryde, May 30 2020
(PARI) b(n)=my(d=digits(n, 4)); -sum(i=1, #d, (-1)^d[i])
first(n)=my(s); concat(0, vector(n, k, s+=b(k))) \\ Charles R Greathouse IV, Jul 04 2020
(Python)
from itertools import accumulate
def A334841(n):
return 2*bin(n)[-1:1:-2].count('1')-(len(bin(n))-1)//2 if n > 0 else 0
CROSSREFS
KEYWORD
nonn,base,easy
AUTHOR
Alexander Van Plantinga, Mar 27 2020
STATUS
approved