Paramétrage du vif d'or

L'héritage de Fibonacci

Ce défi est tiré de c0d1ngUP 2021

Si Nicolas Flamel est célèbre pour sa pierre philosophale, Léonard de Pise, de 200 ans son aîné, a aussi laissé sa trace chez les sorciers, en créant le vif d'or. Bien que les mouvements du vif d'or semblent erratiques, celui-ci a en fait pour fonction de joindre des points de l'espace dans un ordre préétabli.

Précisément, la position du vif d'or est définie par trois coordonnées : abscisse, ordonnée et hauteur. À partir de sa position (x, y, z), le vif va alors se déplacer en ligne droite vers sa position suivante donnée par : (y, z, (x + y + z) % n). Pour rappel, l'opération % donne le reste de la division entière, et n est ici une valeur positive, supérieure à 1, fixée à l'avance.

Le vif d'or entame toujours sa course en (0, 0, 1). Supposons que n soit égal à 85, alors le vif d'or joindra successivement les positions suivantes :

1.  (0, 0, 1)
2.  (0, 1, 1)
3.  (1, 1, 2)
4.  (1, 2, 4)
5.  (2, 4, 7)
6.  (4, 7, 13)
7.  (7, 13, 24)
8.  (13, 24, 44)
9.  (24, 44, 81)
10. (44, 81, 64) car (24 + 44 + 81) % 85 donne 64
11. (81, 64, 19) car (44 + 81 + 64) % 85 donne 19
...

Au bout d'un certain temps, le vif d'or reviendra à sa position d'origine et suivra donc à nouveau exactement le même parcours. Dans l'exemple précédent, cela se produit à la position 2977 :

...
2974. (0, 84, 1)
2975. (84, 1, 0)
2976. (1, 0, 0)
2977. (0, 0, 1)
2978. (0, 1, 1)
2979. (1, 1, 2)
...

En choisissant la valeur de n, on fait donc varier la trajectoire du vif d'or, ainsi que le temps qu'il met avant de revenir à sa position d'origine.

Léonard de Pise a calculé les 10 meilleures valeurs de n et les a entrées dans tous les vifs d'or. Il s'agit des valeurs de n inférieures ou égales à 200, qui donnent les parcours les plus longs (c'est-à-dire pour lesquels le vif d'or effectue le plus de mouvements avant de repasser par sa position initiale).

Afin d'essayer de prévoir les déplacements du vif d'or lors du prochain match de Quidditch, vous avez en tête de découvrir ces 10 valeurs.

Pour valider le défi, trouvez et donnez ces valeurs (dans n'importe quel ordre). Entrez-les sous la forme : 120, 85, 32...

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.