Coder, recoder - MATh.en.JEANS

publicité
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)
Téléchargement