OFFSET
1,1
COMMENTS
The first 14 terms of Kolakoski's sequence are 1,2,2,1,1,2,1,2,2,1,2,2. When we break it into pieces, inserting a pair of parentheses between every two identical terms, we get (1,2),(2,1),(1,2,1,2),(2,1,2),..., and the lengths of the pieces form this sequence 2,2,4,3,...
This sequence only contains 2, 3 and 4. Proof: Considering 1, it would be 1,(1),1 or 2,(2),2 in Kolakoski's sequence, which is impossible because there would be a 3 (or more) in former terms. And for 5 (or more), it would be 1,(1,2,1,2,1),1 (or similar to start with 2), where the terms which generate it would be 2+,1,1,1,2+, where three consecutive terms can't happen according to the former proof.
Except for the first two terms, two consecutive terms cannot be equal unless they're 4. Proof: Considering 2's, the terms in Kolakoski's sequence would be 1,1,2,2,1,1, which would be generated by 2,2,2. And for 3's, the terms in Kolakoski's sequence would be 1,1,2,1,1,2,1,1, which would be generated by 2,1,2,1,2, whose 2nd through 4th terms would be generated by 1,1,1.
EXAMPLE
Kolakoski's sequence separated into pieces:
(1,2), (2,1), (1,2,1,2), (2,1,2), (2,1), (1,2,1), (1,2), (2,1,2,1), (1,2,1,2), (2,1), (1,2,1), (1,2,1,2), (2,1,2), (2,1), (1,2,1,2), (2,1,2,1), (1,...
so we get
2, 2, 4, 3, 2, 3, 2, 4, 4, 2, 3, 4, 3, 2, 4, 4, ...
PROG
(Python)
# See A000002 for the definition of Kolakoski()
def a306323():
last = count = 0
for k in Kolakoski():
if k is last:
yield count
count = 0
count += 1
last = k
from itertools import islice
print(*list(islice(a306323(), 108)), sep=', ')
# corrected by David Radcliffe, May 10 2025
CROSSREFS
KEYWORD
nonn
AUTHOR
Chia-Ching Chen, Mar 25 2019
STATUS
approved
