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)

Présentations similaires


Présentation au sujet: "MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 4)"— 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).
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. Have students come up with other examples and work through them. Maybe start with a 2-digit example.

5 Algorithme d’Euclide (exemple)
pgcd(33,77): Étape r = x mod y x y - 33 77 1 33 mod 77 = 33 2 77 mod 33 = 11 11 3 33 mod 11 = 0

6 Algorithme d’Euclide (exemple)
pgcd(244,117): Par définition  244 et 117 sont premiers relatifs. Étape r = x mod y x y - 244 117 1 244 mod 117 = 10 10 2 117 mod 10 = 7 7 3 10 mod 7 = 3 4 7 mod 3 = 1 5 3 mod 1=0

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 ak ak-1… a1a0 tels que ai<b et donnant: We’ll deal with summation notation in detail later. For now, explain what it means in this particular case. Expension en base-b de n

9 Bases importantes Utiliser seulement parce que nous avons 10 doigts 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 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 Addition des entiers base-b
Les nombres sont additionnés à partir du chiffre le moins significatif vers le plus significatif en faisant suivre les retenus: base-10 base-16 retenu: 1 7 4 6 3 + 2 9 1 A 4 F + C B 9 6 x + y

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

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

14 Multiplication des entiers binaires (+)
La multiplication est simplifiée en binaire puisqu’une X par 2k correspond à faire un décalage à gauche de k-positions (<<k), et X par 0·2k ou 1·2k. x 1  y 1·(x<<0) 0·(x<<1) 0·(x<<2) 1·(x<<3) :

15 Multiplication des entiers binaires (+)
procédure multiplication( xk xk-1…x1x0, yk yk-1…y1y0: entiers binaires positifs) x := xk xk-1…x1x0 p := 0 // produit partiel pour i := 0 à k-1 faire si yi == 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: Équivalent: -x = ¬x + 1.
Calculer du complément 1 Additionner 1 Équivalent: -x = ¬x + 1. représente 18 = 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=011111….1 = = 2,147,483,647 Plus petit int =100000….0 = -231 = -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: (¬ ) = ( ) = 1 retenu: x +y


Télécharger ppt "MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 4)"

Présentations similaires


Annonces Google