login
A363083
a(0)=a(1)=1. For n>1, if the number of occurrences of a(n-1) is less than abs(a(n-1)), then a(n)=a(n-1)-a(n-2). Otherwise, a(n)=a(n-1)+a(n-2).
2
1, 1, 2, 1, 3, 2, 5, 3, -2, -5, -3, 2, -1, 1, 0, 1, 1, 2, 3, 5, 2, 7, 5, -2, 3, 1, 4, 3, 7, 4, -3, -7, -4, 3, -1, 2, 1, 3, 4, 1, 5, 4, 9, 5, 14, 9, -5, -14, -9, 5, -4, -9, -5, 4, -1, 3, 2, 5, 7, 2, 9, 7, -2, 5, 3, 8, 5, 13, 8, -5, -13, -8, 5, -3, 2, -1, 1, 0
OFFSET
0,3
EXAMPLE
a(0) = 1
a(1) = 1
a(2) = 2. Two 1's in the list so far. 2 > abs(1). 1 + 1 = 2.
a(3) = 1. One 2 in the list so far. 1 < abs(2). 2 - 1 = 1.
a(4) = 3. Three 1's in the list so far. 3 > abs(1). 1 + 2 = 3.
PROG
(Python)
from itertools import islice
from collections import Counter
def agen(): # generator of terms
anprev, an, c = 1, 1, Counter([1])
yield 1
while True:
yield an
c[an] += 1
anprev, an = an, an-anprev if c[an] < abs(an) else an+anprev
print(list(islice(agen(), 80))) # Michael S. Branicky, May 18 2023
CROSSREFS
KEYWORD
sign,easy,look
AUTHOR
Gavin Lupo, May 18 2023
STATUS
approved