Écrivez un programme pour déterminer si une séquence périodique d'entiers positifs a la propriété que, pour chaque entier n
apparaissant dans la séquence, il n'y a jamais plus que d' n
autres entiers entre deux occurrences consécutives de n
.
Par exemple, 2, 3, 5, 2, 3, 6, 2, 3, 5, 2, 3, 6, ...
a cette propriété: chaque paire d'occurrences consécutives de 2
a au plus deux entiers entre eux (comme 2, 3, 5, 2
et 2, 3, 6, 2
; chaque paire d'occurrences consécutives de 3
a au plus trois entiers entre eux; et la même chose pour 5
et 6
.
Cependant, 2, 3, 5, 2, 3, 4, 2, 3, 5, 2, 3, 4, ...
n'a pas cette propriété: deux occurrences consécutives de 4
, à savoir 4, 2, 3, 5, 2, 3, 4
, ont plus de quatre entiers entre elles.
Entrée : une représentation raisonnable d'une séquence périodique d'entiers positifs. Par exemple, une liste finie telle que {2, 3, 5, 2, 3, 6}
peut représenter la première séquence infinie 2, 3, 5, 2, 3, 6, 2, 3, 5, 2, 3, 6, ...
ci-dessus. (Pour cette question, le problème pourrait être indiqué pour les listes finies qui s'enroulent plutôt que pour les listes périodiques infinies.)
Sortie : une valeur véridique / fausse.
Exemples véridiques:
{1}
{8, 9}
{2, 3, 4}
{5, 5, 3, 3, 6}
{2, 3, 5, 2, 3, 6}
{6, 7, 3, 5, 3, 7}
{9, 4, 6, 7, 4, 5}
{1, 1, 1, 1, 1, 100, 1}
{1, 9, 1, 8, 1, 7, 1, 11}
Exemples de fausseté:
{1, 2, 3}
{2, 3, 9, 5}
{3, 5, 4, 4, 6}
{2, 3, 5, 2, 3, 4}
{3, 5, 7, 5, 9, 3, 7}
{5, 6, 7, 8, 9, 10, 11}
{1, 9, 1, 8, 1, 6, 1, 11}
C'est codegolf , donc le code le plus court l'emporte. Les réponses dans toutes les langues sont encouragées.