Coder, recoder, etc… Xavier DUSSIEUX 2nd Lycée Fernand Daguin-Mérignac Paul BEZIAU 2nd Lycée Fernand Daguin-Mérignac Yasmine ROUQUETTE 2nd Lycée Elie Faure-Lormont Enseignants : Jean-Charles POURTIER François THOMAS Chercheur : Marie-Line CHABANOL Problème de départ Gaspard souhaite faire passer un message à Balthazar, mais si leur professeur Melchior l’intercepte, il ne faut pas qu’il puisse le lire…C’est pourquoi ils décident d’utiliser un code secret. Le code secret qu’ils utilisent est le suivant : A B C D E F G H I J K L M N B A F C D E J M S G P O I Q Le message que souhaite envoyer Gaspard est : O L P K Q T R S W H T U U N V Z W R X Y Y V Z X VIVE LES VACANCES Une fois codé, le message devient : ZSZD ODH ZBFBQFDH Mais Gaspard se dit que, pour être encore plus prudent, il devrait peut-être à nouveau recoder ce message codé. Il obtient ainsi : XHXC LCM XAEATECM Mais il se dit « Pourquoi s’arrêter là ? », et il code une troisième fois, puis une quatrième et là il obtient : VIVE LES VACANCES ??? Questions ??? • Si on prend un code différent, est-ce qu’en réappliquant plusieurs fois le code sur un message on retombe forcément sur le message d’origine ? • Si oui, est-ce qu’il y a un moyen de savoir à l’avance au bout de combien de fois (sans faire les codages successifs) ? • Comment construire un code pour lequel ce nombre est le plus grand possible ? Sommaire I. Définitions II. Calculer le « cycle de transformation » III. Comment trouver le plus grand « cycle de transformations » ? I. Définitions Dans nos démonstrations, nous partons du principe que le code est connu puisque nous travaillons sur le codage et non le décodage. Pour cela, il nous faut d’abord introduire quelques notions essentielles : On transforme le message lorsqu’on remplace chaque lettre par sa lettre (ou signe) correspondant (voir schéma 1). Une transformation peut-être répétée indéfiniment. On remarque alors que quelque soit le code, nous reviendrons au message initial au bout d’un certain nombre de transformations : nous appellerons ici ce nombre « cycle de transformation ». En transformant un code plusieurs fois, on remarque aussi que certaines lettres se transforment indépendamment des autres. On peut donc les regrouper et l’on appelle ce groupe un roulement et sa valeur correspond au nombre de lettres qui le composent (voir schéma 2). On remarque encore que pour qu’un roulement revienne à son point de départ, il faut que chaque lettre de celui-ci soit passée par toutes les autres (voir schéma 3). Autrement dit, pour qu’un roulement revienne à son point de départ, il faut et il suffit que le nombre de transformations effectuées soit égal à sa valeur ou à un multiple de celle-ci. Il est donc possible de prévoir le « cycle de transformation ». II. Calculer le cycle de transformation : • Dans un premier cas, si l’on connait le nombre de lettres différentes du code, le nombre de roulements et leur valeur, il suffit de prévoir quand tous les roulements reviendront à leur point de départ en même temps ce qui correspond par exemple au produit des valeurs de ces derniers. Mais si on cherche à trouver un cycle de roulements le plus petit possible, il faut calculer le PPCM des valeurs de tous ces roulements. Exemple : Pour le code suivant (légèrement différent de celui du problème de départ) : A E B A C B D C E D F J G F H M I S J G K P L O M I N Q O Y P K Q T Pour le mot « vive » : Roulements différents : 1. Celui qui comprend la lettre « v » a pour valeur 3 (Voir schéma 4).* R W S H T U U N V Z W R X V Y L Z X 2. Celui qui comprend la lettre « i » a pour valeur 4 (Voir schéma 5). 3. Celui qui comprend la lettre « e » a pour valeur 5 (Voir schéma 6). *La lettre « v » est présente deux fois dans le message mais le roulement correspondant n’est compté qu’une fois. Il faut maintenant calculer le PPCM de toutes ces valeurs : PPCM (2 ; 3 ; 4) = 12 Conclusion : son cycle de transformation est 12, c'est-à-dire qu’il faudra donc transformer ce message 12 fois pour qu’il réapparaisse. • Dans un second cas (cette fois un peu différent du problème de départ), on connait seulement le nombre de lettres différentes du code, il faut prévoir toutes les valeurs possibles de roulement et comme la valeur d’un roulement ne peut être supérieure au nombre de lettres du code, alors on doit calculer le PPCM de 1 jusqu’au nombre de lettres du code. Cette méthode ne permet pas de trouver le cycle de roulement le plus petit possible. Exemple : Nombre maximum de lettres différentes possibles du roulement : 26 car il y a 26 lettres dans l’alphabet. Il faut donc calculer le PPCM de 1 à 26 : PPCM (1 ; 2 ; 3 ;…. ; 26) = 26 771 144 400 Conclusion : Au bout de la 26 771 144 400ème transformation, on est sûr que le message réapparaitra, quel que soit le code. III.Trouver le plus grand cycle de transformation : Note : Nous calculons le plus grand cycle de transformation seulement pour 2 roulements, au-delà les calculs et les preuves deviennent trop compliqués. Dans ce chapitre, nous appellerons « n » le nombre de lettres différentes que comporte le code : on distingue 3 cas différents : 1. n est impair 2. n est pair et n/2 est pair 3. n est pair et n/2 est impair 1. Cas où n est impair Comme il y a 2 roulements, il faut séparer n en 2 parties et donc pour trouver le plus grand cycle de transformation, il faut que le PPCM de ces 2 parties soit le plus grand possible. Pour la démonstration, on va appeler les 2 parties « x » et « y ». Ces nombres sont donc 2 entiers et on va partir de x et y consécutifs : et (exemple : si n = 15 alors x = 7 et y = 8). Démonstration que 2 nombres consécutifs sont premiers entre eux : le PGCD de x et (x+1) est aussi diviseur de (x+1)-x or 1 n’a qu’un seul diviseur : lui-même, donc le PGCD de 2 nombres consécutifs est 1 et donc ils sont premiers entre eux. On veut montrer que le cycle de transformation est maximal lorsque x et y sont consécutifs, autrement dit que : D’après cette inégalité, on peut aussi déduire que et ainsi de suite... Conclusion : lorsque n est impair, le cycle de transformation est maximal pour x et y consécutifs. 2. Cas où n est pair et n/2 est pair Ici, nous supposerons que n≥4 (car pour n=0 il n’y a pas de code et n doit être un multiple de 4 d’après les conditions). Pour cette démonstration, on part de (exemple : si n = 12 alors x = 6). Démonstration que (x-1) et (x+1) (impairs puisque x est pair) sont premiers entre eux : le PGCD de (x-1) et (x+1) est aussi diviseur de (donc de 2) or 2 n’a que deux diviseurs : 1 et 2. Comme (x-1) et (x+1) sont impairs, ils ne sont pas divisibles par 2 donc leur PGCD est 1 et donc ces nombres sont premiers entre eux. On veut montrer que le cycle de transformation de 2 roulements de valeur différente mais proche est supérieur que celui de 2 roulements de même valeur, autrement dit : soit D’après le graphique représentant les fonctions et x = 2 soit n = 4 (comme montré précédemment) : (Voir schéma 8), à partir de Comme montré dans le cas précédent, et ainsi de suite… Conclusion : lorsque n est un multiple de 4, le cycle de transformation est maximal quand les roulements ont pour valeur x-1 et x+1. 3. Cas où n est pair et n/2 est impair Ici, nous supposerons que n≥6 (car pour n=2 il n’y a qu’un seul cas possible avec 2 roulements (donc une méthode pour trouver quel cas est le plus avantageux serait inutile) et n ne doit pas être un multiple de 4 d’après les conditions). Comme montré précédemment, roulements qui ont pour valeur donc pour cette démonstration, on part de 2 et (Rappel . Exemple : si n=26 alors ). Démonstration que (x-2) et (x+2) (impairs puisque x est impair) sont premiers entre eux : le PGCD de (x-2) et (x+2) et aussi diviseur de (donc de 4) or 4 n’a que 3 diviseurs : 1 ; 2 et 4. Comme (x-2) et (x+2) sont impairs, ils ne sont divisibles ni par 2 ni par 4 donc leur PGCD est 1 et donc ces nombres sont premiers entre eux. On veut montrer que le cycle de transformation de 2 roulements pairs est inférieur à celui de 2 roulements impairs (x-1 et x+1 étant pairs et donc x-2 et x+2 impairs), autrement dit : soit Comme x≥3 alors x2≥9 Et, comme montré précédemment : Conclusion : lorsque n est pair mais pas multiple de 4, le cycle de transformation est maximal quand les roulements ont pour valeur x-2 et x+2 (pour n≥6). Annexe : Qu’est-ce le PPCM ? En mathématiques et plus précisément en arithmétique, le plus petit commun multiple, en abrégé PPCM (noté lcm en anglais pour least common multiple), de deux entiers naturels a et b, est le plus petit entier qui soit à la fois multiple de ces deux nombres. On le note ppcm (a ; b). (Voir schéma 7)