MAO-M1
Version « Automne 2016 »
Jean-François Burnol
22 janv. 2017
Table des matières
1 Présentation 1
1.1 Objectifs ........................................... 1
1.2 Python3 avec Spyder .................................... 2
2 Documentation sur lalgorithme de primalité AKS 7
3 Feuille de travaux pratiques 1 9
3.1 Exponentiation rapide ................................... 9
3.2 Fibonacci .......................................... 16
3.3 Temps d’exécution de la multiplication en Python ................... 23
4 Feuille de travaux pratiques 2 33
4.1 Avant d’aller plus loin ................................... 33
4.2 Trier ............................................. 34
4.3 Permuter .......................................... 44
5 Feuille de travaux pratiques 3 57
5.1 Racines énièmes de grands entiers ............................ 58
5.2 Binairevs décimal ..................................... 70
5.3 Un peu d’arithmétique ................................... 74
6 Feuille de travaux pratiques 4 83
6.1 Témoins de non-primalité ................................ 83
6.2 Bref aparté sur l’indicatrice d’Euler ........................... 84
6.3 Témoins de Fermat ..................................... 86
6.4 Témoins de Miller ..................................... 89
6.5 testMillerRabin(n, reps) ............................... 93
6.6 estpetitpremier(n) .................................... 94
6.7 estpremier(n) (Miller-Rabin-Bach) ........................... 95
6.8 La surprenante ecacité du test probabiliste de Miller-Rabin ............ 97
6.9 Construire de grands nombres premiers ........................102
7 Feuille de travaux pratiques 5 105
7.1 Avertissement .......................................105
7.2 Tri par fusion ........................................105
7.3 Tri par tas ..........................................111
i
8 Examen du 20 février 2015 117
8.1 Exercice 1 ..........................................117
8.2 Exercice 2 ..........................................118
8.3 Exercice 3 ..........................................118
8.4 Exercice 4 ..........................................119
8.5 Corrigé ...........................................120
9 Examen du 10 décembre 2015 123
9.1 Quelques rappels utiles pour cet examen ........................123
9.2 Exercice 1 ..........................................124
9.3 Exercice 2 ..........................................125
9.4 Exercice 3 ..........................................126
9.5 Exercice 4 ..........................................127
9.6 Corrigé ...........................................130
10 Examen du 1er juin 2016 135
10.1 Quelques rappels utiles pour cet examen ........................135
10.2 Exercice 1 ..........................................136
10.3 Exercice 2 ..........................................136
10.4 Corrigé ...........................................138
11 Examen du 8 décembre 2016 143
11.1 Avant de commencer ...................................143
11.2 Exercice 1 ..........................................144
11.3 Exercice 2 ..........................................145
11.4 Exercice 3 ..........................................146
11.5 Corrigé ...........................................147
11.6 Exercice 4 ..........................................152
12 Téléchargement 155
ii
1
Présentation
Objectifs (page 1)
Python3 avec Spyder (page 2)
Installation sur son ordinateur personnel (page 2)
Prise en main de Spyder en salles de TPs (page 2)
Documentation sur Python (page 3)
Python3 vs Python2 (page 4)
1.1 Objectifs
Ce cours est conçu pour des étudiants sans expérience préalable en programmation.
Nous aborderons avec le langage de programmation Python3 2(voir Documentation sur Python
(page 3)) quelques sujets classiques en algorithmique et arithmétique choisis pris parmi ceux-ci :
coût en temps et espace d’un programme,
— récursivité,
algorithmes de tris,
Euclide et Bezout pour les entiers et les polynômes,
exponentiation rapide,
multiplication rapide (pour les entiers et les polynômes),
nombres premiers, polynômes irréductibles,
arithmétique modulaire, cryptographie RSA,
corps nis,
logarithme discret (méthode de Shanks),
tests de primalité (Miller-Rabin, Agrawal-Kayal-Saxena).
Ilseraimpossibled’êtreexhaustif,évidemment,vuletempslimité.Idéalementnousironsjusqu’à
une implémentation de l’algorithme de primalité de Agrawal, Kayal, et Saxena.
Documentation sur lalgorithme de primalité AKS (page 7)
2. https://docs.python.org/3/reference/index.html
1
1 / 159 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !