L'image éparpillée

mais libéréééée...

Ce défi est tiré de c0d1ngUP 2025

Arthur et Trillian étaient penchés sur le guide, au moment où le moteur d'improbabilité se remis en route de façon (logiquement) improbable. Alors qu'Arthur devenait une peluche vivante et Trillian prenait l'apparence d'un mainate, l'image qu'ils examinaient disparut de l'écran pour être remplacée par un message d'erreur.

— Que se passe-t-il ? demanda Arthur.
— Oh, comme nous, répondit Trillian, l'image a été affectée par le moteur d'improbabilité. Elle est maintenant illisible.
— Que faire, alors, on attend le retour à la normale ?
— Ce n'est pas obligatoire. Les changements à l'échelle d'une image au format PNG sont plutôt faciles à annuler. Ce qui se passe est que les chunks IDAT ont été mélangés. Il suffit de les remettre dans le bon ordre, tu comprends ?
— Bien sûr ! affirma Arthur, qui n'avait pas la moindre idée de ce qu'était un PNG ou un chunk IDAT, et n'avait jamais approché une spécification, à part celle de son lave-vaisselle, ce qui lui avait provoqué une migraine dès le premier paragraphe. Épisode qu'il regrettait d'autant plus que depuis, la spécification, le lave-vaisselle, sa cuisine et la Terre avaient tous disparus.

Il reprit :
— Mais le mélange étant la conséquence du moteur d'improbabilité du vaisseau, difficile de retrouver le bon ordre, non ?
— Pas du tout ! Tu comprends, le fichier est tout petit, et à son échelle, le désordre est fourni par la formule (a * x + b) % n avec a, b et n des entiers connus à l'avance.
— Je comprends, répondit Arthur qui ne comprenait pas tout, mais après une rapide réflexion, il reprit :
— Attends, comment une formule si simple permet de générer l'improbabilité totale du moteur du vaisseau ?
— La théorie du chaos bien sûr, dit Trillian.
Comprenant qu'Arthur était dépassé, elle ajouta doucement :
— Sans rentrer dans les détails, disons que la formule donne des résultats facilement réversibles à petite échelle comme celle d'un fichier binaire, mais appliquée à l'ensemble des particules de l'univers, c'est une tout autre histoire.

Ce que Trillian cherche à expliquer à Arthur, c'est qu'un fichier PNG est composé de différents chunks, dont un ou plusieurs chunks IDAT, par exemple 7 comme ici :

Lors du démarrage du moteur d'improbabilité, si on prend comme valeurs de a, b et n respectivement 2, 3 et 7, alors :
- le chunk IDAT n°0 passe en position (2 * 0 + 3) % 7 = 3,
- le chunk IDAT n°1 passe en position (2 * 1 + 3) % 7 = 5,
- ...
- le dernier chunk (rang 6) passe en position (2 * 6 + 3) % 7 = 1.

Le nouvel arrangement est alors le suivant :

Évidemment, après cela, le décodage de l'image est en erreur et elle ne peut plus s'afficher.

Aidez Trillian et Arthur à retrouver l'image qu'ils consultaient sachant que les valeurs de a, b et n sont respectivement 13, 29 et 839. Répondez en fournissant le nom de ce qu'elle représente (pensez à utiliser un moteur de recherche inversée d'image si vous séchez), par exemple strapontin.

Type de retour
une chaîne de caractères
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.