A362746 a(1)=a(2)=1; a(n)=The count of all occurrences in the list so far where integer a(n-1) appears adjacent to integer a(n-2).
1, 1, 2, 1, 2, 2, 2, 3, 1, 1, 4, 1, 2, 3, 2, 3, 3, 2, 4, 1, 3, 2, 5, 1, 1, 6, 1, 2, 4, 2, 3, 6, 1, 3, 3, 4, 1, 4, 4, 2, 4, 4, 4, 5, 1, 2, 5, 2, 3, 7, 1, 1, 8, 1, 2, 6, 1, 4, 5, 2, 4, 5, 3, 1, 4, 6, 1, 5, 3, 2, 8, 1, 3, 5, 3, 4, 2, 6, 2, 3, 9, 1, 1, 10, 1, 2, 7
Offset: 1
Examples
a(1) = 1. a(2) = 1. a(3) = 2. How many 1's so far are adjacent to a 1? = 2. a(4) = 1. How many 2's so far are adjacent to a 1? = 1. a(5) = 2. How many 1's so far are adjacent to a 2? = 2. a(6) = 2. How many 2's so far are adjacent to a 1? = 2.
Links
- Gavin Lupo, Table of n, a(n) for n = 1..10000
- Gavin Lupo, Image of the first 100000 terms.
Programs
-
Mathematica
K = {1, 1}; While[Length@K < 87, A = Position[K, Last@K]; c = 0; For[a = 1, a <= Length@A, a++, If[K[[A[[a]] - 1]] == {K[[Length@K - 1]]} || K[[A[[a]] + 1]] == {K[[Length@K - 1]]}, c++]]; AppendTo[K, c]]; Print[K] (* Samuel Harkness, May 08 2023 *)
-
Python
from itertools import islice from collections import Counter def agen(): # generator of terms aprev, an, anext, c = 0, 1, 1, Counter({(1, 1)}) while True: aprev, an, anext = an, anext, c[an, anext] c[an, anext] += 1 if aprev != anext: c[anext, an] += 1 yield an print(list(islice(agen(), 100))) # Michael S. Branicky, May 02 2023