Epreuve sur Dossier CAPES Mathématiques ESD 2010 – 0708 : Arithmétique TI-Nspire CAS Auteur du corrigé : Gilbert JULIA Ce document a été réalisé avec la version 2.1 du logiciel TI-Nspire CAS. Fichier associé : esd2010_0708.tns 1. Le sujet A. L’exercice proposé au candidat 1. Déterminer deux entiers relatifs u et v tels que 7u − 13v = 1 puis déterminer tous les couples (a ; k) d’entiers relatifs tels que 14a – 26k = 4. 2. On considère deux entiers naturels a et b. Pour tout entier n, on note f (n) le reste de la division euclidienne de a n + b par 26. On décide de coder un message en procédant comme suit : à chaque lettre de l’alphabet, on associe un entier compris entre 0 et 25 selon le tableau suivant : Lettre Nombre Lettre Nombre A 0 N 13 B 1 O 14 C 2 P 15 D 3 Q 16 E 4 R 17 F 5 S 18 G 6 T 19 H 7 U 20 I 8 V 21 J 9 W 22 K 10 X 23 L 11 Y 24 M 12 Z 25 Pour chaque lettre du message, on détermine l’entier n associé puis on calcule f (n). La lettre est alors codée par la lettre associée à f (n). On sait que la lettre F est codée par la lettre K et que la lettre T est codée par la lettre O. 5a + b ≡ 10 (26) 2.1. Montrer que les entiers a et b sont tels que : . 19a + b ≡ 14 (26) 2.2. En déduire qu’il existe un entier k tel que : 14a – 26k = 4. 5a + b ≡ 10 (26) 2.3. Déterminer tous les couples d’entiers (a ; b) avec 0 ≤ a ≤ 25 ; 0 ≤ b ≤ 25 , tels que : . 19a + b ≡ 14 (26) 2.4. On suppose que a = 17 ; b = 3. Coder le message « GAUSS ». B. Le travail demandé au candidat Le candidat rédigera sur ses fiches : • Sa réponse à la question 1 et à la question 2.3. • Un ou plusieurs exercices se rapportant au thème « Arithmétique ». Le candidat présentera au jury : • Le contenu de ses fiches. • Les méthodes et les savoirs mis en jeu dans l’exercice. 2. Eléments de correction L’exercice est inspiré de l’exercice 26 de la banque d’exercices destinés aux classes de terminale S spécialité mathématiques. Il aborde le thème du codage affine, thème permettant de mettre en œuvre simultanément quelques outils du programme d’arithmétique de cette classe, en particulier l’outil des congruences. Un codage affine définit une bijection de l’ensemble {0 ;1; ... ;25} sur lui-même. La condition pour qu’il en soit ainsi est que le coefficient a de n dans a n + b soit un entier premier avec 26. © Texas Instruments 2010 / Photocopie autorisée ESD 2010 0708_ordi - 1 Epreuve sur Dossier CAPES Mathématiques La question 1 a pour but la résolution dans ℤ×ℤ d’une équation qui servira dans la suite de l’exercice. La question 2 a pour but d’étudier dans quelle mesure la donnée des images de deux lettres détermine la fonction de codage qui a été employée. Méthodes et savoirs mis en jeu dans l’exercice : 1. Savoirs : Théorèmes de Bézout et de Gauss. Méthode : résolution de l’équation a x − b y = c dans ℤ×ℤ : • S’assurer que le coefficient c est un multiple du PGCD de a et de b et se ramener à une équation où les coefficients a et b sont premiers entre eux (ce qu’on suppose dans ce qui suit). • Rechercher une solution particulière (u0 ; v0) de l’équation de Bézout a x − b y = 1 . Le couple (cu0 ; cv0) est alors une solution particulière de a x − b y = c . En l’occurrence, dans le cas de cet exercice, la solution évidente (u 0 ; v 0 ) = (2 ; 1) évite de mettre en œuvre des processus de recherche plus généraux. • Un couple d’entiers relatifs (x ; y) est solution de l’équation a x − b y = c si et seulement si le couple (x – cu0 ; y – cv0) est solution de l’équation réduite : ax = by. • (x ; y) est solution de l’équation ax – by = c si et seulement si il existe un entier relatif k tel que : x = c u0 + k b . y = c v0 + k a 2. Savoir : Formuler de diverses manières une relation de congruence : dire que deux entiers a et b sont congrus modulo 26, c’est dire que les restes des divisions euclidiennes de a et de b par 26 sont égaux. C’est aussi dire qu’il existe un entier relatif k tel que b = a + 26 k . Méthode : Il s’agit de déterminer les coefficients a et b connaissant les images des lettres numéros 5 et 19. Ces données conduisent à écrire un système de deux congruences modulo 26. De ce système, on déduit une congruence modulo 26 portant sur un seul des deux coefficients (le coefficient a). On peut dégager ensuite une méthode permettant de déterminer les entiers relatifs a vérifiant une relation de congruence de la forme : u a ≡ v (c) , les entiers u, v et c étant donnés : • Traduire la relation en termes de nombres entiers : il existe un entier relatif k tel que : ua = v + ck. • Résoudre l’équation d’inconnues a et k : ua – ck = v et déterminer les couples (a ; k) pour lesquels a appartient à {0 ;1; ... ;25} . À chaque valeur de a trouvée par cette méthode est associée une valeur de b appartenant à {0 ;1; ... ;25} que l’on calcule en déterminant le reste de la division euclidienne par 26 de 10 – 5a (ou de 14 – 19a). En l’occurrence, l’équation d’inconnue a et k est celle de la question 1 et, du fait que l’entier u = 14 = 19 – 5 n’est pas premier avec 26, il n’y a pas unicité d’un entier a solution dans l’ensemble {0 ;1; ... ;25} . 3. Apport du logiciel TI-Nspire a. Apports proposés • • • Fonction permettant le codage affine d’un mot. Fonction permettant le décodage d’un mot. Détermination des paramètres a et b connaissant le codage de deux lettres distinctes. © Texas Instruments 2010 / Photocopie autorisée ESD 2010 0708_ordi - 2 Epreuve sur Dossier CAPES Mathématiques b. Codage d’un « mot » Connaissant les deux paramètres a et b définissant un chiffrement affine, l’image d’un entier de l’ensemble {0 ;1; ... ;25} est obtenue par le logiciel à l’aide de la fonction : x ֏ mod(a.x + b ) . Ouvrir une page Calculs. On peut affecter un nom spécifique à cette fonction, par exemple cd. À cet effet, ouvrir l’Editeur de programmes puis Fonction. cd a trois arguments : les paramètres a et b de la fonction de codage et l’élément que l’on souhaite coder. Cet élément peut être aussi bien un nombre qu’une liste de nombres. Ci-contre, on obtient le codage numérique des lettres du mot « gauss » puis celui des lettres de l’alphabet. Selon le code ASCII, les lettres minuscules sont codées numériquement de 97 à 122. La fonction du logiciel qui permet de passer d'une lettre à son code ASCII est la fonction ord. Par conséquent, la fonction : " x" ֏ ord (" x") − 97 associe à une lettre de l’alphabet son code numérique conformément à l’énoncé. La fonction qui inversement permet de passer d'un code numérique ASCII à la lettre correspondante est la fonction char. Ainsi la fonction x ֏ char ( x + 97 ) associe à un entier de {0 ;1; ... ;25} la lettre qui lui correspond conformément à l’énoncé. On peut composer ces diverses fonctions pour passer directement d’une lettre ou d’une liste de lettres à leur codage affine. c. Décodage d’un « mot » Il apparaît utile de chercher la fonction f –1 inverse de la fonction f, ce que l’on se propose de faire avec l’aide du logiciel. Soit x un entier de {0 ;1; ... ;25} et y l’entier de {0 ;1; ... ;25} tel que : y ≡ ax + b (26). Pour tout entier a appartenant à {0 ;1; ... ;25} et premier avec 26, on sait qu’il existe un et un seul entier a’ appartenant à {0 ;1; ... ;25} tel que : aa’ ≡ 1 (26). Alors : a’y – a’b ≡ x (26) : L’entier x est, en sens inverse, image de y par la fonction de codage affine dont les paramètres sont a’ et –a’b. © Texas Instruments 2010 / Photocopie autorisée ESD 2010 0708_ordi - 3 Epreuve sur Dossier CAPES Mathématiques La fonction de décodage notée dc a elle aussi trois arguments : les clefs de codage a et b ainsi que l’élément y que l’on souhaite décoder. Elle se construit en deux temps : • Recherche de l’entier a’. • Application de la fonction cd de paramètres a’ et − a ' b . L’entier 26 étant un « petit » entier, on effectue une recherche systématique1 de a’. Cet entier est celui que l’on obtient lors de l’arrêt de l’instruction « While ». Si on le souhaite, on peut utiliser les fonctions ord et char pour décoder directement une lettre de l’alphabet. c. Trouver les clefs du code L’objectif est le suivant : on connaît, comme c’est le cas dans la question 2 de l’exercice, les images par f de deux entiers différents u et v appartenant à {0 ;1; ... ;25} et on se propose de chercher quels sont les paramètres a et b de la fonction f. u a + b ≡ fu (26) Si on note fu et fv les images respectives de u de v : . v a + b ≡ fv (26) On en déduit en effectuant la différence membre à membre des deux congruences qu’un entier a de l’ensemble {0 ;1; ... ;25} est susceptible d’être une des deux clefs du codage s’il vérifie : (v – u)a – (fv – fu) ≡ 0 (26). Le programme suivant, nommé clefs, a pour objectif de déterminer, s’il en existe, les couples (a ; b) d’entiers de {0 ;1; ... ;25} pour lesquels la fonction de codage associée code u en fu et v en fv. Ce programme a quatre arguments : l’entier u, son image notée fu, l’entier v, son image notée fv. Il répertorie systématiquement tous les entiers a de {0 ;1; ... ;25} qui vérifient la congruence : (v – u)a ≡ fv – fu (26). Chaque fois qu’une solution est trouvée, le paramètre b associé est calculé et le couple (a ; b) est affiché sous forme de liste. Il restera à vérifier si l’entier a est bien premier avec 26 avant d’accepter un tel couple (a ; b) comme clefs d’un code. Dans la question 2 de l’exercice, on trouve ou bien a = 4 ; b = 16 ou bien a = 17 ; b = 3. Dans le premier cas, la fonction f n’est pas bijective (4 et 26 ne sont pas premiers entre eux), ce n’est pas une fonction de codage. C’est pourquoi l’énoncé impose la deuxième solution dans la question 2.4. 1 Il faut s’assurer avant d’utiliser cette fonction que l’entier a est bien premier avec 26, sinon la fonction recherchera indéfiniment l’entier a’ (on peut insérer un test d’arrêt quand k atteint 26 pour parer cette éventualité). © Texas Instruments 2010 / Photocopie autorisée ESD 2010 0708_ordi - 4 Epreuve sur Dossier CAPES Mathématiques 4. Conclusion Un réaménagement de l’énoncé serait souhaitable. La question 2.4, en fin d’exercice, n’a là d’autre rôle que de transformer le résultat de 2.3 en secret de polichinelle. Elle serait mieux placée en tout début d’exercice (avec des valeurs de a et de b différentes de celles obtenues ensuite) afin de faciliter par l’étude d’un exemple la compréhension de la situation. La fonction cd ne fait qu’automatiser le codage, dès lors que les paramètres a et b sont connus. Elle peut intervenir dans la correction de la question, après que les élèves aient codé « à la main » quelques lettres. En l’appliquant à la liste {0 ;1; ... ;25} , on obtient un tableau de codage. Le problème de la réversibilité du codage se pose (facultativement) à ce moment : « on sait coder un texte, mais comment le récepteur d’un message fait-il pour le lire ? ». La lecture « à l’envers » du tableau de codage précédent répond correctement à la question et l’enseignant peut s’en tenir là. Cependant, l’élaboration de la fonction dc souligne le point fondamental de l’action de décodage : trouver l’unique entier a’ de {0 ;1; ... ;25} tel que aa’ ≡ 1 (26), occasion d’expliquer son existence et son unicité, liées au fait que a doit être choisi premier avec 26. Les questions 2.1 à 2.3 portant sur la recherche des clefs d’un code permettent de guider les élèves dans leur démarche, leur ordre peut être reconduit. La question 1 se place plus naturellement après 2.2 puisque c’est à ce moment que survient la nécessité de la résolution d’une équation au premier degré à deux inconnues. Elle peut être purement et simplement supprimée, si on destine cet exercice à être l’objet d’un travail de recherche. Il est préférable que les élèves se posent eux-mêmes la question à propos de la marche à suivre pour résoudre 14a – 26k = 4 qu’ils écriront spontanément : 7a – 13k = 2 : « que faire quand il y a un second membre et que ce second membre est différent de 1 ? ». Pour présenter son travail au jury, le candidat peut grouper (Ctrl + 4) les deux fonctions cd et dc ainsi que le programme clefs sur une même page. 5. Pour aller plus loin Le travail avec le logiciel qui présente le plus d’intérêt est assurément le programme « clefs ». Il peut être exploité en fin d’exercice par l’enseignant (et par un candidat au CAPES) pour (se) poser la question du choix des lettres de l’alphabet qu’il est intéressant de décrypter. Le programme va fournir rapidement quelques exemples de résolution de la question 2 (en variant les paramètres u et v) destinés à susciter des conjectures. À titre d’exemple, supposons que l’on sache que E est codé O. Ainsi, u = 4 ; fu = 14 dans le programme. Quelles autres lettres essayer de décoder ? © Texas Instruments 2010 / Photocopie autorisée ESD 2010 0708_ordi - 5 Epreuve sur Dossier CAPES Mathématiques Ci-contre, on essaie les cas où l’on sait successivement que T est codé P, puis que S est codé I, puis que R est codé B. On a donc successivement v = 19 ; fv = 15 (un seul couple solution), puis v = 18 ; fv = 8 (deux couples solutions comme dans l’exercice, dont un ne génère pas une fonction de codage) et enfin v = 17 ; fv = 1 (13 couples solutions, tous générant une fonction de codage sauf lorsque a = 13). Ces exemples amènent à s’intéresser au PGCD de v – u et de 26. Si ces deux nombres sont premiers entre eux, alors on trouvera un unique couple (a ; b) solution du système de congruences. Si ce PGCD est égal à 2, on trouvera deux couples solutions. En définitive, ce n’est pas bien grave, l’un est composé d’un entier a pair donc non premier avec 26, l’autre d’un entier a impair, premier avec 26 s’il ne s’agit pas de 13. Enfin, si v – u = 13, il y a 13 couples solutions, le décryptage n’est pas résolu. C’est pourquoi par exemple, connaissant le code de E, il est inutile de tenter de connaître le code de la lettre R. Une autre question que l’on peut se poser est la suivante : Si u et v sont choisis de telle sorte que v – u soit premier avec 26, peut-on choisir « au hasard » les entiers images fu et fv pour générer un codage ? Il n’en est rien. Ci-contre, on suppose successivement que T est codé G puis B. Le programme fournit bien, dans chaque cas, un couple solution, mais a n’est pas premier avec 26. Les données ne génèrent pas une fonction de codage. L’entier fv – fu est égal successivement à –8 et à –13, il n’est pas premier avec 26. Pour générer une authentique fonction de codage, il faut choisir fv – fu premier avec 26. © Texas Instruments 2010 / Photocopie autorisée ESD 2010 0708_ordi - 6