OFFSET
3,2
COMMENTS
Representing A000002 as a tree. Each branch of this tree is a string. Starting from n=3, each 1 in n-th string generates either 1 or 2 in (n+1)-th string and each 2 in n-th string generates either 11 or 22 in (n+1)-st string based on the previously generated term of either 2 or 1. Hence number of terms in (n+1)-st string is sum of all terms in n-th string.
PROG
(Python)
MAX_NUM = 10000 # Number of terms in Kolakoski Sequence
K = [1, 2, 2]
previous = 2
# Generate Kolakoski Sequence
for index1 in range(2, MAX_NUM):
generator = K[index1]
if (generator == 1 and previous == 1):
K.append(2)
previous = 2
elif(generator == 2 and previous == 1):
K.append(2)
K.append(2)
previous = 2
elif(generator == 1 and previous == 2):
K.append(1)
previous = 1
elif(generator == 2 and previous == 2):
K.append(1)
K.append(1)
previous = 1
branch_sum = 1
index2 = 2
cntr1 = 1
while(index2 < MAX_NUM):
ones_cntr = 0
# This for loop extracts strings from Kolakoski Sequence
start_index = index2
end_index = index2 + branch_sum
branch_sum = 0
for index3 in range(start_index , end_index):
branch_sum = branch_sum + K[index3]
ones_cntr = ones_cntr + (K[index3]%2)
index2 = end_index
print(str(cntr1)+" "+str(ones_cntr)+"\n")
cntr1 = cntr1 + 1
CROSSREFS
KEYWORD
nonn
AUTHOR
Rakesh Khanna A, May 24 2020
STATUS
approved