La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 4) François Meunier DMI.

Présentations similaires


Présentation au sujet: "MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 4) François Meunier DMI."— Transcription de la présentation:

1 MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 4) François Meunier DMI

2 Entiers et Algorithmes Sujets: Algorithme d’Euclide pour trouver le PGCD. Représentations des entiers en base b. Binaire, hexadécimal, octal. Représentation complément-2 des nombres binaires négatifs. Algorithmes de l’arithmétique des ordinateurs: Addition, multiplication et division binaire.

3 Algorithme d’Euclide pour trouver le PGCD Trouver le pgcd de deux nombres en comparant les facteurs premiers peut être difficile si ces facteurs premiers sont inconnus. Euclide a démontré que pour toutes paires d’entiers a, b, pgcd(a, b) = pgcd((a mod b), b). Pour une paire ordonnée a,b telle que a>b, en supposant que b>1 alors (a mod b) < a. Ceci facilite la recherche du pgcd.

4 Exemples pgcd(372,164) = pgcd(372 mod 164, 164). 372 mod 164 = 372  164  372/164  = 372  164·2 = 372  328 = 44. pgcd(164,44) = pgcd(164 mod 44, 44). 164 mod 44 = 164  44  164/44  = 164  44·3 = 164  132 = 32. pgcd(44,32) = pgcd(44 mod 32, 32) = pgcd(12, 32) = pgcd(32 mod 12, 12) = pgcd(8,12) = pgcd(12 mod 8, 8) = pgcd(4,8) = pgcd(8 mod 4, 4) = pgcd(0,4) = 4.

5 Algorithme d’Euclide (exemple) pgcd(33,77): Étaper = x mod yxy mod 77 = mod 33 = mod 11 = 0 110

6 Algorithme d’Euclide (exemple) pgcd(244,117): Par définition  244 et 117 sont premiers relatifs. Étaper = x mod yxy mod 117 = mod 10 = mod 7 = mod 3 = mod 1=010

7 Algorithme d’Euclide procédure pgcd(a, b: entiers positifs ) tant que b  0 faire r ≔ a mod b; a ≔ b; b ≔ r; Fin retourner a // dernier reste non nul

8 Systèmes de numération Base-b La représentation de nombres en base-10, utilise les symboles 0-9. Mais il n’existe pas seulement la base-10 Toute base b>1 peut être utilisée. Pour n’importe quels entiers positifs n,b, il existe une séquence de chiffres a k a k-1 … a 1 a 0 tels que a i

9 Bases importantes Base b=10 (décimal): 10 symboles: 0,1,2,3,4,5,6,7,8,9. Base b=2 (binaire): 2 symboles: 0,1. (“Bits”=“binary digits.”) Base b=8 (octal): 8 symboles: 0,1,2,3,4,5,6,7. Base b=16 (hexadécimal): 16 symboles: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Représentation interne des données dans un ordinateur Chaque chiffre octal correspond à 3 bits Chiffre HEX correspond à 4 bits Utiliser seulement parce que nous avons 10 doigts 10, 11, 12, 13, 14, 15

10 Convertion dans la Base b Algorithme informel: Pour convertir un nombre n dans une base b>1: La valeur du chiffre le moins significatif, calculée par n mod b. Remplacer n par le quotient  n/b . Répéter les 2 étapes précédentes pour trouver les autres chiffres, TTQ n != 0.

11 Les nombres sont additionnés à partir du chiffre le moins significatif vers le plus significatif en faisant suivre les retenus: base-10 1 A4F0 +CB09 16FF9 base-16 retenu: x + y Addition des entiers base-b

12 procédure addition(a n−1 …a 0, b n−1 …b 0 : entiers positifs dans une base base a,b) c := 0 pour j := 0 à n−1 {pour chaque chiffre} Sum := a j +b j +c {somme de 2-chiffres} s j := Sum mod base {chiffre bas de la somme } c :=  Sum / base  {chiffre haut de la somme} fin s n := c retourner s n …s 0 : entier s en base base

13 Addition des entiers binaires procédure addition(a n−1 …a 0, b n−1 …b 0 : représentations binaires des entiers positifs a,b) c := 0 pour j := 0 à n−1 {pour chaque bit} bitSum := a j +b j +c {somme de 2-bits} s j := bitSum mod 2 {bit bas de la somme } c :=  bitSum / 2  {bit haut de la somme} fin s n := c retourner s n …s 0 : entier s en binaire

14 Multiplication des entiers binaires (+) La multiplication est simplifiée en binaire puisqu’une X par 2 k correspond à faire un décalage à gauche de k- positions (<

15 Multiplication des entiers binaires (+) procédure multiplication( x k x k-1 …x 1 x 0, y k y k- 1 …y 1 y 0 : entiers binaires positifs ) x := x k x k-1 …x 1 x 0 p := 0 // produit partiel pour i := 0 à k-1 faire si y i == 1 alors p = addition(p, x  i ) retourner p multiplicande multiplicateur

16 Complément-2 Élimine le problème de double représentation du 0 Addition de termes signés est facile Permet d’utiliser que des opérations d’addition Représentation de nombres dans l’intervalle -2 (k-1)  x < 2 (k-1) Ex: Java: byte [-128 to +127]

17 Complément-2 Représentation des négatifs: 1. Calculer du complément 1 2. Additionner 1 Équivalent: -x = ¬x représente = représente -18 Quel est l’intervalle des valeurs entières signées de type int en Java, C ou C++? Int: 32-bits: Plus grand int = ….1 = = 2,147,483,647 Plus petit int = ….0 = = -2,147,483,648

18 Addition Complément-2 Addition comme celle décrite précédemment = (-18) 10, = (-12) 10 Additionnés ensemble: ( ) = (-30) 10 : Le complément-2 de -30 devrait donner 30: (¬ ) = ( ) = retenu: x +y


Télécharger ppt "MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 4) François Meunier DMI."

Présentations similaires


Annonces Google