# Is it stuck in a counting loop?

+3

−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