Le pistolet de Nick Fury

Recherche du fonctionnement périodique

Ce défi est tiré de c0d1ngUP 2016

Le pistolet de Nick Fury émet des impulsions successives dont l'intensité varie selon une loi mathématique.

Pour calculer l'intensité de l'impulsion suivante, il suffit d'écrire en binaire l'intensité de l'impulsion émise, de renverser l'écriture de ce nombre binaire (lire de droite à gauche), puis d'ajouter 2.

Sur le pistolet, on peut régler l'intensité de l'impulsion initiale.

Par exemple, si le pistolet est réglé sur 39, alors, lors d'un tir, les impulsions émises auront pour intensité :

  • 39 --> 100111 --> 111001 --> 57 --> 59
  • 59 --> 111011 --> 110111 --> 55 --> 57
  • 57 --> 111001 --> 100111 --> 39 --> 41
  • 41 --> 101001 --> 100101 --> 37 --> 39
  • 39 --> ...

On constate que pour le réglage 39, les amplitudes sont périodiques, et les valeurs 39, 59, 57, 41 se répètent indéfiniment. Pour le réglage 39, la période est donc 4.

Voici un autre exemple, obtenu avec une impulsion initiale de 86 :

  • 86 --> 55 --> 61 --> 49 --> 37 --> 43 --> 55...

Bien qu'on ne retourne jamais à la valeur 86, on obtient aussi un cycle, de longueur 5.

En revanche, pour certaines valeurs, l'amplitude n'est pas périodique, et le comportement du pistolet est imprévisible. Si Nick le règle sur une telle valeur, le pistolet peut exploser dès qu'il a changé plus de 1024 fois d'intensité.

Afin d'améliorer l'arme de Nick Fury et ainsi rendre service au Shield, il convient de ne permettre que les réglages des valeurs de départ qui donnent lieu à un comportement périodique.

Pour relever ce défi, vous devez donner la séquence de toutes les valeurs convenables comprises entre 1 et 500 c'est-à-dire celles qui donnent lieu à un comportement périodique.

Type de retour
une séquence de nombres entiers
Entrées du problème
Pas de données d'entrée
Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.