Comments on Is it stuck in a counting loop?
Post
Is it stuck in a counting loop?
+4
−0
Given a list of non-negative integers the function $f$ replaces every integer with the number of identical integers preceding it (not necessarily contiguously). So
f [1,1,2,2,1,3,3] = [1,2,1,2,3,1,2]
We will say that a list, $X$, is in a loop if there is some positive integer $n$ such that $f^n X = X$. That is, you can apply the function to $X$ some number of times to arrive at $X$.
Your task is to take a list as input and determine if that list is in a loop. You should output one of two consistent values, one if it is in a loop and the other if it is not.
This is code-golf. The goal is to minimize the size of your source code as measured in bytes.
A note: There are other ways to formulate this condition.
Test cases
[2,2] -> False
[1,1] -> True
[1,2] -> True
[1,1,2,2,3,3] -> True
[1,2,3,1,4,2,5,3] -> True
[1,2,1,3,1,2] -> True
[1,2,1,3,1,3,4,6] -> False
[1,2,2,3] -> False
1 comment thread