32 lines
678 B
Text
32 lines
678 B
Text
F gen_kolakoski(s, n)
|
||
[Int] seq
|
||
V i = 0
|
||
L seq.len < n
|
||
V next = s[i % s.len]
|
||
seq [+]= [next] * (I i >= seq.len {next} E seq[i])
|
||
i++
|
||
R seq[0 .< n]
|
||
|
||
F is_possible_kolakoski(s)
|
||
[Int] r
|
||
V i = 0
|
||
L i < s.len
|
||
V count = 1
|
||
L(j) i + 1 .< s.len
|
||
I s[j] != s[i]
|
||
L.break
|
||
count++
|
||
r.append(count)
|
||
i += count
|
||
|
||
L(i) 0 .< r.len
|
||
I r[i] != s[i]
|
||
R 0B
|
||
R 1B
|
||
|
||
L(s) [[1, 2],
|
||
[2, 1],
|
||
[1, 3, 1, 2],
|
||
[1, 3, 2, 1]]
|
||
V kol = gen_kolakoski(s, I s.len > 2 {30} E 20)
|
||
print(‘Starting with: ’s":\nKolakoski sequence: "kol"\nPossibly kolakoski? "is_possible_kolakoski(kol))
|