login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A308619
Negative van Eck's sequence: For n >= 1, if there exists an m < n such that a(m) = a(n), take the largest such m and set a(n+1) = n-m, otherwise a(n+1) = -a(n). Start with a(1)=0.
1
0, 0, 1, -1, 1, 2, -2, 2, 2, 1, 5, -5, 5, 2, 5, 2, 2, 1, 8, -8, 8, 2, 5, 8, 3, -3, 3, 2, 6, -6, 6, 2, 4, -4, 4, 2, 4, 2, 2, 1, 22, -22, 22, 2, 5, 22, 3, 20, -20, 20, 2, 7, -7, 7, 2, 4, 19, -19, 19, 2, 5, 16, -16, 16, 2, 5, 5, 1, 28, -28, 28, 2, 7, 19, 15, -15, 15, 2, 6, 48, -48, 48, 2, 5, 17, -17, 17, 2, 5, 5, 1, 23, -23, 23, 2, 7, 23, 3, 51, -51
OFFSET
1,6
COMMENTS
Similar logic as van Eck's sequence except that if a(n) hasn't appeared before, then a(n+1) = -a(n) instead of being 0.
FORMULA
If a(n) < 0, then a(n+1) = -a(n) and a(n+2) = 2. - Rémy Sigrist, Jul 14 2019
EXAMPLE
We start with a(1) = 0.
0 has not occurred before, so our rule says that a(2) = -a(1) = 0.
Now 0 has occurred before, at a(1), which is 1 term before, so a(3) = 1.
1 has not occurred before, so a(4) = -a(3) = -1.
-1 has not occurred before, so a(5) = -a(4) = 1.
Now 1 has occurred before, at a(3), which is 2 term before, so a(6) = 2.
2 has not occurred before, so a(6) = -a(5) = -2.
And so on...
PROG
(Python)
import numpy as np
def A308619(n):
NegVanEck = np.array([0])
#first value is 0
i=NegVanEck[0]
while i < n:
last = NegVanEck[-1]
pos = np.where(NegVanEck == last)
if pos[0].size == 1:
NegVanEck = np.append(NegVanEck, -last)
else:
NegVanEck = np.append(NegVanEck, pos[0][-1] - pos[0][-2])
i += 1
return NegVanEck
print(A308619(1000)) #prints first 1000 integers of the sequence
CROSSREFS
Cf. A181391.
Sequence in context: A064741 A281659 A345202 * A114294 A371929 A242050
KEYWORD
sign
AUTHOR
João D. R. Camacho, Jun 11 2019
STATUS
approved