Kolakoski sequence: Difference between revisions
Content added Content deleted
Line 626: | 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] |
[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> |
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}}== |
=={{header|Kotlin}}== |