OFFSET
0,7
COMMENTS
Alternative description: Start with a(0) = 0, and then to obtain each a(n), look at each successive term in the infinite trunk of inverted binary beanstalk, from A233271(1) onward, subtracting one from a(n-1) if A233271(n) is odd, and adding one to a(n-1) if A233271(n) is even.
In other words, starting from zero, iterate the map x -> {x + 1 + number of nonleading zeros in the binary representation of x}, and note each time whether the result is odd or even: With odd results go one step down, and even results go one step up.
After the zeros at a(0), a(2) and a(4) and -1 at a(1), the terms stay strictly positive for a long time, although from the terms of A257805 it can be seen that the sequence must again fall to the negative side somewhere between n = 541110611 and n = 1051158027 (i.e., A218600(33) .. A218600(34)). Indeed the fourth zero occurs at n = 671605896, and the second negative term right after that as a(671605897) = -1.
The maximum positive value reached prior to the slide into negative territory is 2614822 for a(278998626) and a(278998628). - Hans Havermann, May 23 2015
LINKS
Antti Karttunen, Table of n, a(n) for n = 0..8727
Hans Havermann, Graph of 2*10^9 terms
Hans Havermann, Detail graph of the eventual crossover to negative terms and a listing of its associated zeros
Wikipedia, Blancmange curve
FORMULA
EXAMPLE
We consider 0 to have no nonleading zeros, so first we get to 0 -> 0+1+0 = 1, and 1 is odd, so we go one step down from the starting value a(0)=0, and thus a(1) = -1.
1 has no nonleading zeros, so we get 1 -> 1+1+0 = 2, and 2 is even, so we go one step up, and thus a(2) = 0.
2 has one nonleading zero in binary "10", so we get 2 -> 2+1+1 = 4, and 4 is also even, so we go one step up, and thus a(3) = 1.
4 has two nonleading zeros in binary "100", so we get 4 -> 4+2+1 = 7, 7 is odd, so we go one step down, and thus a(4) = 0.
PROG
(PARI)
A070939 = n->#binary(n)+!n; \\ From M. F. Hasler
A257806_write_bfile(up_to_n) = { my(n, a_n=0, b_n=0); for(n=0, up_to_n, write("b257806.txt", n, " ", a_n); b_n = A233272(b_n); a_n += ((-1)^b_n)); };
A257806_write_bfile(8727);
(Python)
def A257806_print_upto(n):
a = 0
b = 0
for n in range(n):
print(b, end=", ")
ta = a
c0 = 0
while ta>0:
c0 += 1-(ta&1)
ta >>= 1
a += 1 + c0
b += ((2*(1-(a&1))) - 1)
(Scheme, two alternatives, the latter using memoizing definec-macro)
CROSSREFS
KEYWORD
AUTHOR
Antti Karttunen, May 12 2015
STATUS
approved