Présentation
Certains d'entre vous connaissent peut-être la séquence de Kolakoski ( A000002 ), une séquence autoréférentielle bien connue qui a la propriété suivante:
C'est une séquence contenant seulement 1 et 2, et pour chaque groupe de 1 et de deux, si vous additionnez la longueur des pistes, elle est égale à elle-même, seulement la moitié de la longueur. En d'autres termes, la séquence de Kolakoski décrit la longueur des séquences de la séquence elle-même. C'est la seule séquence qui fait cela, sauf pour la même séquence avec le 1 initial supprimé. (Cela n'est vrai que si vous vous limitez aux séquences composées de 1 et 2 - Martin Ender)
Le défi
Le défi est, étant donné une liste d'entiers:
- Sortie
-1
si la liste n'est PAS un préfixe de travail de la séquence de Kolakoski. - Affiche le nombre d'itérations avant que la séquence ne devienne
[2]
.
L'exemple élaboré
En utilisant l'image fournie comme exemple:
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] # Iteration 0 (the input).
[1,2,2,1,1,2,1,2,2,1,2] # Iteration 1.
[1,2,2,1,1,2,1,1] # Iteration 2.
[1,2,2,1,2] # Iteration 3.
[1,2,1,1] # Iteration 4.
[1,1,2] # Iteration 5.
[2,1] # Iteration 6.
[1,1] # Iteration 7.
[2] # Iteration 8.
Par conséquent, le nombre résultant est 8
pour une entrée de [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1]
.
9
convient également si vous effectuez une indexation 1.
La suite de tests (vous pouvez également tester avec des sous-itérations)
------------------------------------------+---------
Truthy Scenarios | Output
------------------------------------------+---------
[1,1] | 1 or 2
[1,2,2,1,1,2,1,2,2,1] | 6 or 7
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] | 8 or 9
[1,2] | 2 or 3
------------------------------------------+---------
Falsy Scenarios | Output
------------------------------------------+---------
[4,2,-2,1,0,3928,102904] | -1 or a unique falsy output.
[1,1,1] | -1
[2,2,1,1,2,1,2] (Results in [2,3] @ i3) | -1 (Trickiest example)
[] | -1
[1] | -1
Si vous êtes confus:
Truthy: Il atteindra finalement deux sans aucune étape intermédiaire ayant d'autres éléments que 1
et 2
. -Einkorn Enchanter 20 hours ago
Faux: la valeur de fin ne l'est pas [2]
. Les termes intermédiaires contiennent autre chose que quelque chose de l'ensemble [1,2]
. Quelques autres choses, voir des exemples.
C'est le code-golf , le nombre d'octets le plus bas sera le vainqueur.
[2]
lorsque j'ai vu le [2,2,1,1,2,1,2]
cas de test.
1
et 2
.
[1]
comme cas de test.
-1
?