1 Questions de coût (de la vie?)



Documents pareils
Nombres premiers. Comment reconnaître un nombre premier? Mais...

Introduction à l étude des Corps Finis

Exercices - Polynômes : corrigé. Opérations sur les polynômes

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Quelques tests de primalité

D'UN THÉORÈME NOUVEAU

Axiomatique de N, construction de Z

Cours d arithmétique Première partie

Date : Tangram en carré page

NOTATIONS PRÉLIMINAIRES

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

chapitre 4 Nombres de Catalan

Cours 02 : Problème général de la programmation linéaire

Mathématiques Algèbre et géométrie

Chapitre 1 : Évolution COURS

Peut-on tout programmer?

Recherche dans un tableau

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Réalisabilité et extraction de programmes

Calculateur quantique: factorisation des entiers

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Structures algébriques

Raisonnement par récurrence Suites numériques

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

avec des nombres entiers

Développement décimal d un réel

Chapitre VI - Méthodes de factorisation

Conversion d un entier. Méthode par soustraction

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

1 Définition et premières propriétés des congruences

UNIVERSITE IBN ZOHR Faculté des sciences Agadir. Filière SMA & SMI. Semestre 1. Module : Algèbre 1

Le produit semi-direct

CHAPITRE VIII : Les circuits avec résistances ohmiques

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Algorithme. Table des matières

Vers l'ordinateur quantique

Représentation d un entier en base b

Polynômes à plusieurs variables. Résultant

108y= 1 où x et y sont des entiers

Représentation des Nombres

LE PROBLEME DU PLUS COURT CHEMIN

Cryptographie et fonctions à sens unique

Développements limités. Notion de développement limité

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

4. NOMBRES COMPLEXES ET TRIGONOMÉTRIE

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Résolution de systèmes linéaires par des méthodes directes

Une forme générale de la conjecture abc

FONDEMENTS DES MATHÉMATIQUES

Les opérations binaires

3 Approximation de solutions d équations

Initiation à la programmation en Python

Exercices de dénombrement

Compter à Babylone. L écriture des nombres

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

Chapitre 1 I:\ Soyez courageux!

Feuille TD n 1 Exercices d algorithmique éléments de correction

Exercices Corrigés Premières notions sur les espaces vectoriels

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Fonctions de plusieurs variables

6. Les différents types de démonstrations

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

L ALGORITHMIQUE. Algorithme

Taux d évolution moyen.

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Extrait du poly de Stage de Grésillon 1, août 2010

Carl-Louis-Ferdinand von Lindemann ( )

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

THEME : CLES DE CONTROLE. Division euclidienne

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Complément d information concernant la fiche de concordance

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Cours arithmétique et groupes. Licence première année, premier semestre

Initiation à l algorithmique

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Cours d Analyse. Fonctions de plusieurs variables

DOCM Solutions officielles = n 2 10.

Algorithmes récursifs

Chapitre 2 Le problème de l unicité des solutions

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Nombre de marches Nombre de facons de les monter

Espaces probabilisés

Problème 1 : applications du plan affine

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

3. Conditionnement P (B)

Continuité et dérivabilité d une fonction

C f tracée ci- contre est la représentation graphique d une

Compte-rendu de projet de Système de gestion de base de données

Continuité d une fonction de plusieurs variables

Théorème du point fixe - Théorème de l inversion locale

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Transcription:

1 Université Paul Sabatier Année 2009-2010 Préparation à l'agrégation Arithmétique des entiers et des polynômes Option C emmanuel hallouin@univ-tlse2.fr http://www.math.univ-toulouse.fr/ hallouin/eh-agreg.html hallouin Avant propos Dans ces notes de cours nous allons aborder des notions évoquées dans les points 3.1, 3.5, 3.6 du programme 2009 des épreuves écrites ainsi que des notions des points 1, 2, 7 du programme 2009 spécique de l'option C. Références [CF06] Henri Cohen and Gerhard Frey. Handbook of elliptic and hyperelliptic curve cryptography. Chapman & Hall/CRC, 2006. [Dem97] Michel Demazure. Cours d'algèbre Primalité, Divisibilité, Codes, volume 1 of Nouvelle Bibliothèque mathématique. Cassini, 1997. [Knu97] Donald E. Knuth. The Art of Computer Programming, Vol 2. Addison-Wesley, 1997. 1 Questions de coût (de la vie?) An de déterminer les coûts ou la complexité des divers algorithmes que nous allons aborder dans ce cours, il convient tout d'abord de rééchir à ce qu'est la taille machine des quantités que nous allons manipuler. Plus précisément, demandons nous ce qu'est la taille d'un entier ou d'un polynôme. Pour simplier, on supposera qu'un ordinateur code un entier dans un tableau contenant les chires (ou bits ou encore digits) de sa décomposition binaire 1. Quant aux polynômes, ils sont eux aussi codés dans un tableau contenant ses coecients. Question 1. a. Exprimer la taille nécessaire pour stocker un entier n en fonction de n. b. Faire de même pour un polynôme. Question 2. a. A votre avis qu'est-ce qu'un algorithme polynomial ou exponentiel dans le cadre des entiers? b. Et dans le cadre des polynômes? Cela étant, évaluons la complexité des opérations de base entre entiers ou polynômes. Question 3. Compléter, en justiant votre réponse, le tableau récapitulatif des complexités suivant : Opération Complexité a, b n Opération Complexité deg(a), deg(b) d a + b A + B a b A B a b A B a e A e a b A B pgcd(a, b) pgcd(a, B) Question 4. Avez-vous eu connaissance d'une opération sur les entiers que l'on sait, à ce jour, ni faire ecacement, ni montrer qu'il est impossible de le faire ecacement? 1. Ce faisant nous nous écartons que très peu de la réalité (cf. Ÿ4.3 pour plus de précisions)

2 2 Anneaux euclidiens Les anneaux Z et K[X] partagent la qualité fondamentale d'être euclidien. Un anneau A est dit euclidien s'il existe une application ω : A N telle que : 1. pour tous a, b A, si a b alors ω(a) ω(b) ; 2. pour tout a A et tout b A, il existe q, r A tels que a = bq + r avec r = 0 ou r 0 et ω(r) < ω(b). L'anneau des entiers Z est euclidien avec.................................... Théorème 2.1 (Division Euclidienne) Soient a, b Z, avec b 0. Il existe un unique couple d'entiers (q, r) Z 2 tel que : a = bq + r et 0 r < b. Quant à l'anneau des polynômes K[X] à coecients dans un corps K, il est euclidien............... Pour simplier les énoncés, on convient que le degré du polynôme nul vaut avec la convention supplémentaire < d pour tous d N. Théorème 2.2 (Division euclidienne polynomiale) Soit A et B deux polynômes de K[X] avec B non nul. Il existe (Q, R) K[X] 2 unique tel que : A = BQ + R et deg(r) < deg(b). Les entiers q, r (respectivement les polynômes Q, R) des deux énoncé précédents s'appellent le quotient et le reste de la division euclidienne de a par b (respectivement de A par B). Question 5. Soient a et b deux entiers écrits en base 2 comptant respectivement α et β digits. Quel est l'ordre de grandeur du nombre d'additions (ou soustractions) que requiert la division de a par b? 3 Calcul de pgcd La théorie de la divisibilité est considérablement simpliée dans les anneaux euclidiens. Si de plus la division euclidienne est explicite ce qui est le cas pour Z et K[X] comme nous venons de le voir, alors beaucoup de concepts liés à la divisibilité deviennent explicites eux aussi, à commencer par le calcul du pgcd. 3.1 Autour de l'identité de Bezout La théorie de la divisibilité dans les entiers peut se présenter selon deux points de vue bien diérents. Soit on met en avant les nombres premiers et le théorème fondamental de l'arithmétique tout nombre entier se décompose d'une unique façon (à l'ordre près) en produit de premiers, soit on se base sur l'existence d'identités de Bezout. Cependant, dès lors que l'on est concerné par l'eectivité, aucune hésitation n'est possible : c'est le point de vue de Bezout qu'on l'on suit. Théorème 3.1 Soient a et b deux entiers. Il existe un diviseur commun d à a et b qui est somme d'un multiple de a et d'un multiple de b, c'est-à-dire de la forme : d = au + bv avec u, v Z. De plus cet entier est unique au signe près. Question 6. Le montrer. En fait l'entier d du théorème précédent n'est rien d'autre que pgcd(a, b) le plus grand commun diviseur entre a et b (au signe près). Quant aux coecients u et v, ils s'appellent des coecients de Bezout 2. 2. Etienne Bézout est né le 31 Mars 1730 à Nemours, France et mort le 27 Septembre 1783 à Basses-Loges, France.

3 Question 7. a. Donner les autres autres caractérisations du pgcd(a, b) et montrer qu'elles sont toutes équivalentes. b. Montrer l'égalité entre les idéaux dz = az + bz. c. Un entier qui est somme d'un multiple de a et d'un multiple de b est-il forcément égal au pgcd(a, b)? Si non, qu'est-il donc? Question 8. En raisonnant avec les coecients de Bezout, montrer que : pgcd(a, b) = 1 = pgcd(a n, b n ) = 1, n 1. Voici maintenant le pendant polynomial de l'énoncé précédent. Théorème 3.2 Soit A et B deux polynômes de K[X]. Il existe un diviseur commun D à A et B de la forme : D = AU + BV, avec U, V K[X]. De plus ce polynôme est unique à un élément de K près. Tout ce que l'on vient de faire pour deux entiers (ou polynômes) se généralise en considérant r entiers (ou polynômes) avec r 2. Question 9. a. Rappeler ce que cela veut dire pour r entiers a 1,..., a r d'être premiers entre eux dans leur ensemble? Et d'être premiers entre eux deux-à-deux? b. Pour 1 i r, on note Π i le i-ème coproduit déni par Π i = j i a j. Montrer l'équivalence : a 1,..., a r sont premiers entre eux deux-à-deux Π 1,..., Π r sont premiers entre eux. c. Montrer les deux formules : pgcd(a 1,..., a r ) = pgcd(a 1, pgcd(a 2,..., a r )) = pgcd(pgcd(a 1, a 2 ), a 3,..., a r ), puis vérier que l'une donne naissance à un algorithme récursif, l'autre à un algorithme itératif, pour le calcul du pgcd de r entiers. 3.2 Algorithme d'euclide (étendu) L'algorithme d'euclide dans sa version étendue permet de calculer à la fois le pgcd et des coecients de Bezout. Il repose sur le lemme suivant : Lemme 3.3 Soit (a, b) Z Z ; si r est le reste de la division Euclidienne de a par b, alors pgcd(a, b) = pgcd(b, r). Question 10. Le prouver. Je vous rappelle brièvement le principe de l'algorithme d'euclide. Il repose sur la remarque suivante : le processus initié dans le lemme 3.3 ne peut être réitéré qu'un nombre ni de fois. On eectue les divisions successives suivantes : (r 0, r 1 ) (r 1, r 2 ) (r 2, r 3 ) (r n, r n+1 ) où on a posé r 0 = a, r 1 = b et noté r i le reste de la division Euclidienne de r i 2 par r i 1. Alors : b = r 1 > r 2 > r 3 > > r i > 0. Au bout d'un certain nombre de divisions le reste est forcément nul. Notons r n le dernier reste non nul, c'est-à-dire que r n 0 et r n+1 = 0. D'après le lemme 3.3, pgcd(a, b) = pgcd(r 0, r 1 ) = pgcd(r 1, r 2 ) = pgcd(r 2, r 3 ) = = pgcd(r n, r n+1 ) = pgcd(r n, 0) = r n, si bien que le dernier reste non nul n'est rien d'autre que pgcd(a, b).

4 Question 11. a. Donner un ordre de grandeur d'une nombre de restes calculés et en déduire la complexité de l'algorithme d'euclide. b. Montrer que le nombre maximal de pas dans l'algorithme d'euclide peut-être relié à la suite de de Fibonacci (F n ) n dont je vous rappelle la dénition F 0 = 0, F 1 = 1 et F n+2 = F n+1 + F n pour n 0. Nous allons maintenant adapter cet algorithme pour qu'en plus de nous fournir pgcd(a, b), il exhibe des coecients de Bezout u, v Z tels que au + bv = pgcd(a, b). L'idée est de produire la suite (r i ) i accompagnée de deux autres suites (u i ) i et (v i ) i telles que : i 0, au i + bv i = r i. Question 12. a. Que peut-on choisir pour u 0, v 0, u 1, v 1? b. Montrer que l'on peut trouver des coecients u i, v i à partir des coecients u i 2, v i 2, u i 1, v i 1. c. En déduire, sur le principe de l'algorithme d'euclide, un algorithme dit étendu permettant de calculer à la fois le pgcd et les coecients de Bezout. d. Combien avez-vous ajouté de multiplications? Si on résume, l'algorithme d'euclide étendu consiste à initialiser les valeurs de r i, u i, v i, i = 0, 1, à : { r 0 =....., u 0 =....., v 0 =....., r 1 =....., u 1 =....., v 1 =....., et, pour i 2, les i-èmes termes respectifs s'expriment en fonction des (i 2)-èmes et (i 1)-èmes selon la règle suivante : (q i, r i ) :=....................................................................... u i :=.......................................... v i :=......................................... Pour clore ce paragraphe, voici comment j'ai coutume de présenter l'exécution de l'algorithme sur un exemple. Calculons pgcd(133, 24) avec coecients de Bezout. i r i q i u i v i 0 133 1 0 1 24 0 1 2 13 5 1 5 3 11 1 1 6 4 2 1 2 11 5 1 5-11 61 Ainsi pgcd(133, 24) = 1 avec 133 ( 11) + 24 61 = 1. 3.3 Applications Grâce à ce qui précède, on est déjà en mesure de résoudre certaines équations très simples. Question 13. a. A quelle condition sur a, b et n l'équation ax b (mod n) admet-elle des solutions. b. Quand c'est possible, donner un algorithme qui résolve ce type d'équation. Un tout petit peu plus subtil : la résolution des systèmes de congruences. Théorème 3.4 (Système de congruence) Soit m et n deux entiers premiers entre eux. Pour tous a, b Z, le système de congruences : { x a (mod m) x b (mod n) admet des solutions. Plus précisément si u, v Z vérient mu + nv = 1 alors x 0 =................. est solution et l'ensemble des solutions est alors donné par {................. }.

5 Question 14. Compléter l'énoncé précédent et donner un algorithme résolvant un tel système de congruences. Indications : pour vous aider, vous pouvez commencer à résoudre les systèmes avec a = 1 et b = 0, puis a = 0 et b = 1, puis en déduire les solutions en général. Question 15. a. Plus généralement, que sut-il de supposer sur r entiers m 1,..., m r pour qu'étant donnés a 1,..., a r Z, le système : x a 1 (mod m 1 ). x a r (mod m r ) admette des solutions (si vous savez répondre pour r = 3, vous le saurez pour r quelconque). b. Donner un algorithme qui résolve ce type de système. 4 Le théorème chinois 4.1 Les divers énoncés Commençons par donner deux énoncé du théorème chinois. Théorème 4.1 (Chinois (forme brève)) Si a et b sont deux entiers premiers entre eux alors les anneaux Z/abZ et Z/aZ Z/bZ sont isomorphes. Théorème 4.2 (Chinois (forme complète)) Soient a et b sont deux entiers premiers entre eux et u, v Z tels que au + bv = 1. Alors les applications : Z/abZ Z/aZ Z/bZ x mod ab (...........,........... ) Z/aZ Z/bZ Z/abZ (x mod a, y mod b)................. dénissent des isomorphismes d'anneaux réciproques l'un de l'autre. Question 16. Compléter l'énoncé du théorème précédent. Question 17. Généraliser ce théorème au cas de r entiers a 1,..., a r. 4.2 Le petit théorème de Fermat Soit n = p e 1 1 per r un entier décomposé en premiers. On s'intéresse à U(Z/nZ) le groupe des inversibles de l'anneau Z/nZ. Question 18. Au fait à quelle condition sur x Z, la classe x mod n est-elle inversible dans Z/nZ? Comment calcule-t-on cet inverse? Comme l'isomorphisme du théorème chinois est un isomorphisme..........., il induit un isomorphisme entre les groupes d'inversibles : U(Z/nZ) U(Z/p e 1 1 Z) U(Z/per r Z). Théorème 4.3 (Petit théorème de Fermat) Soit n un entier. Pour tout x Z premier à n on a x ϕ(n) 1 (mod n). Question 19. C'est un simple résultat de théorie des groupes non? En particulier on a le : Corollaire 4.4 Si p est premier alors pour tout x Z premier à p on a..................... Une question assez naturelle vient à l'esprit : la réciproque de l'énoncé précédent est-elle vraie? La réponse est non.

6 Proposition 4.5 Soit n 1 un entier. Alors sont équivalentes : 1. l'entier n est sans facteur carré et pour tout premier p divisant n, on a p 1 qui divise n 1 ; 2. pour tout x premier à n, on a x n 1 1 (mod n). Question 20. Le montrer. Les entiers composés qui satisfont cette proposition s'appellent les nombres de Carmichael (cf. [Dem97, Ÿ3.3.1]). Ils sont en nombre inni et joueront les trouble-fêtes dans les critères de primalité issus du petit théorème de Fermat. 4.3 Codage des grands entiers Dans un cours ultérieur, il sera question du codage de grands entiers et plus généralement des nombres réels ou complexes sur un ordinateur. Nous allons aborder ici une alternative au codage le plus courant pour les entiers reposant sur le théorème chinois (cf. l'ouvrage de Knuth [Knu97, Ÿ4.3.2] pour plus de détails). L'idée est assez simple : an de coder les entiers M, on choisit r petits entiers m 1,..., m r de telle sorte que m 1 m r > M. Chaque entier de x [0..M] est alors codé par le r-uplet (x 1,..., x r ) où on a posé x i = x mod m i. Question 21. a. Parmi toutes les opérations élémentaires déjà évoquées, quelles sont celles qui s'adaptent très bien à cette nouvelle représentation et quelles sont celles qui, au contraire, ne s'en accommodent pas. b. Est-il facile de comparer deux entiers écrits sous cette forme? Pour comprendre le gain en terme d'ecacité que peut apporter cette méthode, il faut revenir sur la représentation des entiers en machine. Tout d'abord une machine pense binaire, c'est-à-dire qu'elle ne manie que des 0 et des 1, les fameux bits. En fait, la plus petite unité de mémoire est en général le byte qui n'est rien d'autre qu'une suite de huit bits. Ensuite le processeur est capable de manipuler en même temps plusieurs bytes au moyen d'un registre. La taille de ce registre, aussi appelé mot machine, est une des caractéristiques les plus importantes de l'ordinateur. Ainsi, un ordinateur 32 bits (respectivement64 bits) est connu pour savoir manier des mots de taille 32 (respectivement 64). Toutes les opérations élémentaires sur les entiers codés sur un seul mot (single precision integers in english) sont optimisées au maximum tant et si bien que l'on peut choisir ces opérations comme unité de mesure (et non plus l'opération bit-à-bit) en ne distinguant même pas l'addition de la multiplication. Je renvoie à la lecture des ouvrages de Knuth [Knu97, Ÿ4.2] ou Cohen et Frey [CF06, chapter 10] pour un exposé complet sur la question. Question 22. Sur un ordinateur 32 bits, quel ordre de grandeur est-il judicieux de choisir pour les moduli m i? Question 23. Que deviennent les complexités des opérations élémentaires + et avec ce nouveau codage. Question 24. a. Montrer que tout entier x < m 1 m r s'écrit sous la forme : y 1 + m 1 y 2 + m 1 m 2 y 3 + + m 1 m r 1 y r, 0 y i < m i, i. b. Montrer que l'on peut calculer les y i à partir des x i sans jamais manipuler d'entiers occupant plus de deux mots. c. Quelle opération supplémentaire nous permet la manipulation des y i? 4.4 Résolution des systèmes linéaires à coecients rationnels Dans le même esprit que la section précédente, via le théorème chinois, on peut résoudre un système linéaire du type MX = V avec M M m,n (Z) et V Z m. L'idée est la suivante : on résoud ce système modulo plusieurs premiers p 1,..., p r et on remonte à Z grâce au théorème chinois. Question 25. a. Si m = n et si det(m) 0 donner un algorithme qui résolve l'équation MX = V basé sur le théorème chinois.

7 b. Résoudre le système : 1 3 2 x 1 16 2 4 1 x 2 = 77 1 5 1 x 3 69 Plus généralement, plaçons nous dans le cas où m n et où r le rang de M vérie r < m. Question 26. Comparer le rang de M et celui de M mod p sa réduction modulo p. Question 27. Pour xer les idées, supposons que le mineur r r en haut à gauche de M est non nul. a. Pour tout r + 1 i n, montrer que le système MX = 0 admet une unique solution de la forme t (x 1,..., x r, 0..., 0,, 0..., 0), x 1,..., x r Z où la coordonnée valant se trouve en i-ème position. b. Soit p un premier ne divisant pas. Montrer que deux solutions de MX = 0 (mod p) dont les (n r) dernières coordonnées coïncident sont égales modulo p. c. Montrer que l'on peut adapter la stratégie du cas simple pour calculer les solutions de la question précédente. Question 28. Résoudre avec la méthode précédente le système MX = 0 avec : 1 2 2 3 M = 1 3 1 14. 3 1 21 94