Bases d algorithmique, algorithmes d Euclide 1 Le programme sur ce sujet :

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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours d arithmétique Première partie

Développement décimal d un réel

Quelques tests de primalité

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

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

avec des nombres entiers

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Licence Sciences et Technologies Examen janvier 2010

Représentation d un entier en base b

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

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

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

Chapitre VI - Méthodes de factorisation

Introduction à l étude des Corps Finis

O, i, ) ln x. (ln x)2

FONDEMENTS DES MATHÉMATIQUES

Logique. Plan du chapitre

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

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

Résolution d équations non linéaires

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

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

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

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

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Premiers exercices d Algèbre. Anne-Marie Simon

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Université Paris-Dauphine DUMI2E 1ère année, Applications

Initiation à la programmation en Python

Chapitre 1 : Évolution COURS

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

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

CCP PSI Mathématiques 1 : un corrigé

Maple: premiers calculs et premières applications

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Rappels sur les suites - Algorithme

1 Recherche en table par balayage

Le chiffre est le signe, le nombre est la valeur.

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Raisonnement par récurrence Suites numériques

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

4. Les structures de données statiques

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

L ALGORITHMIQUE. Algorithme

Cours Fonctions de deux variables

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

Réalisabilité et extraction de programmes

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Représentation des Nombres

Correction du Baccalauréat S Amérique du Nord mai 2007

Continuité et dérivabilité d une fonction

Polynômes à plusieurs variables. Résultant

Fonctions de plusieurs variables

Initiation à l algorithmique

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Algorithme. Table des matières

Technique opératoire de la division (1)

Les nombres entiers. Durée suggérée: 3 semaines

Programmation avec Xcas ou Python

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Chapitre 2. Eléments pour comprendre un énoncé

Fonction inverse Fonctions homographiques

Une forme générale de la conjecture abc

I. Ensemble de définition d'une fonction

Cours de Probabilités et de Statistique

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

Nathalie Barbary SANSTABOO. Excel expert. Fonctions, simulations, Groupe Eyrolles, 2011, ISBN :

Fonctions homographiques

Factorisation d entiers (première partie)

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

3 Approximation de solutions d équations

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Programmation linéaire

1 I ) Une première approche de l algorithme en seconde, saison 2010 _ Antoine ROMBALDI

MATHÉMATIQUES FINANCIÈRES I

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

Présentation du cours de mathématiques de D.A.E.U. B, remise à niveau

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

OPTION SCIENCES BELLE-ISLE-EN-TERRE

Limites finies en un point

Loi binomiale Lois normales

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Algorithmes récursifs

Algorithmique et Programmation Fonctionnelle

Informatique Générale

Entraînement au concours ACM-ICPC

Texte Agrégation limitée par diffusion interne

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours.

Correction du baccalauréat S Liban juin 2007

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

Dérivation : Résumé de cours et méthodes

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Cours de mathématiques

Angles orientés et trigonométrie

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

Transcription:

1 Le programme sur ce sujet : 2 Algorithmique et informatique Notions de variable et de type. Instructions d affectation, conditionnelles, d itération. Fonctions et procédures (ou sous-programmes) ; passage de paramètre, variables locales, notion de récursivité. Rédaction en français ou dans un langage au choix du candidat de programmes ne comportant qu un faible nombre d instructions et pouvant utiliser des fonctions (ou sous-programmes). Aucun développement théorique n est exigé. Exemples d algorithmes illustrant les notions figurant dans le présent programme. 3 Algèbre générale 3.1 Extensions successives de la notion de nombre Anneau Z des entiers relatifs. Division euclidienne. Sous-groupes additifs et idéaux de Z. Nombres premiers. Décomposition en facteurs premiers. Plus grand commun diviseur (PGCD) et plus petit commun multiple (PPCM). Théorème de Bachet-Bézout. Algorithme d Euclide étendu. 2 Références Pour python : le livre de G.Swinnen sur python : http://inforef.be/swi/download/python_notes_hyper.pdf, ce document est sous licence GNU, donc libre d accès. A lire sur ordi ou tablette, ça n est pas rentable de l imprimer intégralement, autant acheter le livre en librairie. un cours en ligne de python très bien fait : http://www.courspython.com/sommaire.html, pour " mettre le pied à l étrier " et plus... Pour l arithmétique : Très précisément : "Mathématiques Tout-en-un première année" (2ieme édition MPSI/PCSI) de Ramis/Deschamps/Warusfel. page 683 et suivantes. Toute bonne "suite de CPGE", au rayon arithmétique. 3 Travail proposé On propose de réaliser une implémentation en python des algorithmes d Euclide suivants : 1) Algorithme des différences pour calculer quotient et reste d une division Euclidienne d entiers naturels 2) Algorithme d Euclide pour le calcul du PGCD de deux entiers naturels 3) Algorithme d Euclide étendu pour le calcul simultané du PGCD et des coefficients de Bézout d un couple d entiers naturels. On considère N connu par ses "4 propriétés fondamentales" : a) N est un ensemble non-vide totalement ordonné par une relation d ordre notée, appelée ordre naturel des entiers. b) Toute partie non-vide de N possède un plus petit élément c) Toute partie non-vide majorée de N possède un plus grand élément d) N lui-même ne possède pas de plus grand élément 3.1 Algorithme des différences 3.1.1 Base mathématique Théorème de la division euclidienne dans N : { (a, b) N N,!(q, r) N 2 a = bq + r, r < b vocabulaire : q est le quotient, r le reste etc... Le diviseur b ne peut pas être nul. Démonstration : (uniquement l existence, l unicité ne nous intéresse pas pour la construction de l algorithme) Considérons l ensemble E = {k N, a bk 0} : c est une partie non-vide de N car il contient 0 c est une partie majorée de N : a + 1 est un majorant. Page 1/ 5

E possède donc un plus grand élément, que l on note q, on pose alors r = a bq, comme q + 1 n est pas dans E, on a alors r b < 0... Donc (q, r) convient. 3.1.2 Construction de l algorithme Cette démonstration de l existence nous indique la marche à suivre : "il suffit de retrancher b autant de fois que nécéssaire jusqu à l obtention d un résultat négatif. Le nombre d étape est alors un de plus que le quotient, le reste s en déduit... 3.1.3 Algorithme en pseudo-langage 3.1.4 Algorithme en python 3.2 Calcul du PGCD 3.2.1 Base mathématique Pour a N, et k N, on rappelle que k a c N, a = kc. (on lit "k divise a"). Notons D(a) = {k N, k a} l ensemble des diviseurs de a. Avec ces définitions D(0) = N, cependant la locution "diviseur de zéro" à un autre sens en algèbre... a N, {1, a} D(a) a est dit premier lorsque D(a) est de cardinal 2. (Ce qui exclut 1 des nombres premiers...) Page 2/ 5

Lorsque a est non-nul, D(a) est une partie non-vide majorée de N, son plus grand élément est a. Pour (a, b) N 2, notons CD(a, b) = D(a) D(b), l ensemble des diviseurs communs (ou "Communs Diviseurs") de a et de b. il y a évidemment symétrie... CD(a, 0) = D(a) CD(a, 1) = {1} a et b sont premiers entre eux ssi CD(a, b) = {1}, cela peut-être pris comme une définition. (a, b) N 2, {1} CD(a, b), en particulier CD(a, b) est non-vide. CD(a, b) est majoré par a et par b (lorsqu ils sont non-nuls) CD(a, b) possède donc un plus grand élément noté P GCD(a, b) P GCD n est défini que pour des couples d entiers non-nuls... Propriété : Si (a, b, q, r) sont quatre entiers naturels tels que a = bq + r,alors CD(a, b) = CD(b, r) Démonstration : procéder par double inclusion 3.2.2 Construction de l algorithme La propriété suivante s applique donc avec le reste de la DE de a par b : Si le reste est 0 (ou 1) le PGCD est alors connu d après les remarques précédentes. Sinon on itère le procédé en divisant b par r... On itère autant de fois que nécéssaire, la suite des restes successifs et une suite d entiers naturels strictement décroissante, ce qui assure la terminaison de l algorithme. On dispose là directement d une formulation récursive de l algorithme... 3.2.3 Algorithme en pseudo-langage Page 3/ 5

3.2.4 Algorithme en python 3.3 Calcul simultané du PGCD et des coefficients de Bézout 3.3.1 Base mathématique Rappelons le théorème de Bezout : (a, b) N 2, (u, v) N 2, au + bv = P GCD(a, b) il n y a pas unicité du couple (u, v) la démonstration théorique n est pas proposée ici : elle n est d aucun secours pour l aspect algorithmique... C est l algorithme qui sera lui-même un preuve. 3.3.2 Construction de l algorithme Il faut reprendre et examiner en détail l étape d itération de l algorithme précédent : à la n ième étape le dividende a n s écrit par division euclidienne a n = b n q n + r n, puis en cas de poursuite : le diviseur devient le nouveau dividende : a n+1 b n et le reste le nouveau diviseur : b n+1 r n. Le dernier reste non-nul sera le PGCD cherché... Supposons qu à cette n ième étape le dividende a n s écrive a n = au n + bv n et qu à la précédente a n 1 s écrivait a n 1 = au n 1 + bv n 1 : Alors q n 1 a n = q n 1 b n 1 = a n 1 r n 1 = a n 1 b n = a n 1 a n+1 Mais par ailleurs q n 1 a n = aq n 1 u n + bq n 1 v n Ainsi a n+1 = a n 1 (aq n 1 u n + bq n 1 v n ) = a(u n 1 q n 1 u n ) + b(v n 1 q n 1 v n ) = au n+1 + bv n+1 On dispose donc d une relation de récurrence d ordre 2 pour la suite (u n, v n )... Il faut initialiser cette suite avec (u 0, v 0 ) = (, ) et (u 1, v 1 ) = (, ). si le reste r n est nul, on est dans le cas de terminaison, a n+1 = b n = r n 1 est le dernier reste non-nul, c est donc bien le PGCD et (u, v) = (u n+1, v n+1 ) convient sinon on passe à l itération suivante... L algorithme se termine car la suite r n est, comme précédemment, une suite d entiers naturels strictement décroissante. Page 4/ 5

3.3.3 Algorithme en pseudo-langage 3.3.4 Algorithme en python Page 5/ 5