Kolakoski 序列是个自生成的无限序列。
例如,当给定的整数组为 [1, 2] 时,Kolakoski 序列是这样的:
[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,…]
如果我们将相邻的相同的数字分成一组,那么将会得到:
[[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],…]
可以看出,每组数字交替由 1, 2 组成。
接下来对每个分组求他的长度,得到:
[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,…]
可以看出,经过如上的变换后,数列保持不变。
对于其他给定的整数组,同样可以用类似的方法构造 Kolakoski 序列,例如给定整数组 [2, 3] 时:
[2,2,3,3,2,2,2,3,3,3,2,2,3,3,2,2,3,3,3,2,2,2,3,3,3,2,2,3,3,…]
给定整数组 [2, 1, 3, 1] 时,构造得到如下:
[2,2,1,1,3,1,2,2,2,1,3,3,1,1,2,2,1,3,3,3,1,1,1,2,1,3,3,1,1,…]