Kolakoski sequence: Difference between revisions

Line 626:
[1, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 3, 3, 2, 2, 1, 1, 3, 2, 1, 1, 1, 1, 3, 3, 3, 2, 2, 1]
Possible Kolakoski sequence? false</pre>
 
=={{header|Julia}}==
{{trans|C++}}
<lang julia>function kolakoski(vec, len)
seq = Vector{Int}()
k = 0
denom = length(vec)
while length(seq) < len
n = vec[k % denom + 1]
k += 1
seq = vcat(seq, repeat([n], k > length(seq) ? n : seq[k]))
end
seq[1:len]
end
 
function iskolakoski(seq)
count = 1
rle = Vector{Int}()
for i in 2:length(seq)
if seq[i] == seq[i - 1]
count += 1
else
push!(rle, count)
count = 1
end
end
rle == seq[1:length(rle)]
end
 
const tests = [[[1, 2], 20],[[2, 1] ,20], [[1, 3, 1, 2], 30], [[1, 3, 2, 1], 30]]
 
for t in tests
vec, n = t[1], t[2]
seq = kolakoski(vec, n)
println("Generated Kolakoski sequence: first $n numbers are $seq.")
println("\t\tDoes this look like a Kolakoski sequence? ", iskolakoski(seq) ? "Yes" : "No")
end
</lang> {{output}} <pre>
Generated Kolakoski sequence: first 20 numbers are [1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1].
Does this look like a Kolakoski sequence? Yes
Generated Kolakoski sequence: first 20 numbers are [2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2].
Does this look like a Kolakoski sequence? Yes
Generated Kolakoski sequence: first 30 numbers are [1, 3, 3, 3, 1, 1, 1, 2, 2, 2, 1, 3, 1, 2, 2, 1, 1, 3, 3, 1, 2, 2, 2, 1, 3, 3, 1, 1, 2, 1].
Does this look like a Kolakoski sequence? Yes
Generated Kolakoski sequence: first 30 numbers are [1, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 3, 3, 2, 2, 1, 1, 3, 2, 1, 1, 1, 1, 3, 3, 3, 2, 2, 1].
Does this look like a Kolakoski sequence? No
<pre>
 
 
=={{header|Kotlin}}==
4,108

edits