• Aucun résultat trouvé

Timide introduction aux mathématiques discrètes

N/A
N/A
Protected

Academic year: 2022

Partager "Timide introduction aux mathématiques discrètes"

Copied!
100
0
0

Texte intégral

(1)

Timide introduction aux mathématiques discrètes

Guillaume CONNAN & Thierry BRUGÈRE

IUT de Nantes - Dpt d'informatique

19 septembre 2011

(IUT de Nantes - Dpt d'informatique ) 1 / 43

(2)

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 2 / 43

(3)

Calcul booléen

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 3 / 43

(4)

Calcul booléen Algèbre de Boole

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 4 / 43

(5)

Calcul booléen Algèbre de Boole

(P(E),∪,∩,ÙE,⊆,;,E)

(B,+,·,a,É,0,1)

(IUT de Nantes - Dpt d'informatique ) 5 / 43

(6)

Calcul booléen Algèbre de Boole

(P(E),∪,∩,ÙE,⊆,;,E)

(B,+,·,a,É,0,1)

(IUT de Nantes - Dpt d'informatique ) 5 / 43

(7)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(8)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(9)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(10)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(11)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(12)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(13)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(14)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(15)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(16)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(17)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(18)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(19)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(20)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(21)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(22)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(23)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(24)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(25)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(26)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(27)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(28)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(29)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(30)

Calcul booléen Algèbre de Boole

P(E) B P(E) B

; ∪ ; = ; 0+0=0 ; ∩ ; = ; 0·0=0 E∪E=E 1+1=1 E∩E=E 1·1=1 A∪ ; =A a+0=a A∩ ; = ; a·0=0 A∪E=E a+1=1 A∩E=A a·1=a A∪A=A a+a=a A∩A=A a·a=a A∪A=E a+a=1 A∩A= ; a·a=0

Table:Correspondance entre P(E) et B

(IUT de Nantes - Dpt d'informatique ) 6 / 43

(31)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(32)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(33)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(34)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(35)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(36)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(37)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(38)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(39)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(40)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(41)

Calcul booléen Algèbre de Boole

Les surprises

a+(b·c) (b·c)+a a+a a·a a+1

(a+b)·(a+c) a+a·b a·(a+b) a·a a+a

(IUT de Nantes - Dpt d'informatique ) 7 / 43

(42)

Calcul booléen Algèbre de Boole

Realation d'ordre

aÉb⇐⇒a+b= aÉb⇐⇒a·b= aÉb⇐⇒a+b=

aÉb⇐⇒a·b= 0Éa·bÉaÉa+bÉ1

(IUT de Nantes - Dpt d'informatique ) 8 / 43

(43)

Calcul booléen Algèbre de Boole

Realation d'ordre

aÉb⇐⇒a+b= aÉb⇐⇒a·b= aÉb⇐⇒a+b=

aÉb⇐⇒a·b= 0Éa·bÉaÉa+bÉ1

(IUT de Nantes - Dpt d'informatique ) 8 / 43

(44)

Calcul booléen Algèbre de Boole

Realation d'ordre

aÉb⇐⇒a+b= aÉb⇐⇒a·b= aÉb⇐⇒a+b=

aÉb⇐⇒a·b= 0Éa·bÉaÉa+bÉ1

(IUT de Nantes - Dpt d'informatique ) 8 / 43

(45)

Calcul booléen Algèbre de Boole

Realation d'ordre

aÉb⇐⇒a+b= aÉb⇐⇒a·b= aÉb⇐⇒a+b=

aÉb⇐⇒a·b= 0Éa·bÉaÉa+bÉ1

(IUT de Nantes - Dpt d'informatique ) 8 / 43

(46)

Calcul booléen Algèbre de Boole

Realation d'ordre

aÉb⇐⇒a+b= aÉb⇐⇒a·b= aÉb⇐⇒a+b=

aÉb⇐⇒a·b= 0Éa·bÉaÉa+bÉ1

(IUT de Nantes - Dpt d'informatique ) 8 / 43

(47)

Calcul booléen Algèbre de Boole

Algèbre de Boole binaire

B2

(IUT de Nantes - Dpt d'informatique ) 9 / 43

(48)

Calcul booléen Algèbre de Boole

Table canonique.

Loi de De Morgan

(IUT de Nantes - Dpt d'informatique ) 10 / 43

(49)

Calcul booléen Algèbre de Boole

Table canonique.

Loi de De Morgan

(IUT de Nantes - Dpt d'informatique ) 10 / 43

(50)

Calcul booléen Algèbre de Boole

Dualité

x(y+z)=xy+xz : duale ? x+yz=(x+y)(x+z)

(IUT de Nantes - Dpt d'informatique ) 11 / 43

(51)

Calcul booléen Algèbre de Boole

Dualité

x(y+z)=xy+xz : duale ? x+yz=(x+y)(x+z)

(IUT de Nantes - Dpt d'informatique ) 11 / 43

(52)

Calcul booléen Algèbre de Boole

Dualité

x(y+z)=xy+xz : duale ? x+yz=(x+y)(x+z)

(IUT de Nantes - Dpt d'informatique ) 11 / 43

(53)

Calcul booléen Algèbre de Boole

Dualité

x(y+z)=xy+xz : duale ? x+yz=(x+y)(x+z)

(IUT de Nantes - Dpt d'informatique ) 11 / 43

(54)

Calcul booléen Fonctions booléennes

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 12 / 43

(55)

Calcul booléen Fonctions booléennes

Support

Sn(f )=©

b∈B2n|f (b)=1ª

(IUT de Nantes - Dpt d'informatique ) 13 / 43

(56)

Calcul booléen Fonctions booléennes

Fonctions de B

22

x y f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15

0 0 1

0 1 0

1 0 1

1 1 0

(IUT de Nantes - Dpt d'informatique ) 14 / 43

(57)

Calcul booléen Fonctions booléennes

littéral positif littéral négatif

monôme booléenpourquoi ? polynôme booléen

(IUT de Nantes - Dpt d'informatique ) 15 / 43

(58)

Calcul booléen Fonctions booléennes

littéral positif littéral négatif

monôme booléenpourquoi ? polynôme booléen

(IUT de Nantes - Dpt d'informatique ) 15 / 43

(59)

Calcul booléen Fonctions booléennes

littéral positif littéral négatif

monôme booléenpourquoi ? polynôme booléen

(IUT de Nantes - Dpt d'informatique ) 15 / 43

(60)

Calcul booléen Fonctions booléennes

littéral positif littéral négatif

monôme booléenpourquoi ? polynôme booléen

(IUT de Nantes - Dpt d'informatique ) 15 / 43

(61)

Calcul booléen Fonctions booléennes

littéral positif littéral négatif

monôme booléen pourquoi ? polynôme booléen

(IUT de Nantes - Dpt d'informatique ) 15 / 43

(62)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause)maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(63)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause)maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(64)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause)maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(65)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause)maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(66)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause) maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(67)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause) maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(68)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause) maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(69)

Calcul booléen Fonctions booléennes

Un p-terme minterme

Un s-terme (clause) maxterme Disjonctive

Disjonctive canonique Conjonctive

Conjonctive canonique

(IUT de Nantes - Dpt d'informatique ) 16 / 43

(70)

Calcul booléen Fonctions booléennes

Obtenir la forme canonique disjonctive

f =f (x1,x2,x3)=(x1+x2)x3

x1 x2 x3 x1+x2 x3 f (x1,x2,x3)

1 1 1

1 1 0

1 0 1

1 0 0

0 1 1

0 1 0

0 0 1

0 0 0

On en déduit aussi la forme canonique conjonctive

(IUT de Nantes - Dpt d'informatique ) 17 / 43

(71)

Calcul booléen Fonctions booléennes

Obtenir la forme canonique disjonctive

f =f (x1,x2,x3)=(x1+x2)x3

x1 x2 x3 x1+x2 x3 f (x1,x2,x3)

1 1 1

1 1 0

1 0 1

1 0 0

0 1 1

0 1 0

0 0 1

0 0 0

On en déduit aussi la forme canonique conjonctive

(IUT de Nantes - Dpt d'informatique ) 17 / 43

(72)

Calcul booléen Portes logiques

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 18 / 43

(73)

Calcul booléen Portes logiques

Portes US

x

y x·y x

y x+y x x

x

y x|y x

y x↓y x

y x⊕y

(IUT de Nantes - Dpt d'informatique ) 19 / 43

(74)

Calcul booléen Portes logiques

Portes à l'européenne

& ≥1 1

& ≥1 =1

x

y x·y x

y x+y x x

x

y x|y x

y x↓y x

y x⊕y

(IUT de Nantes - Dpt d'informatique ) 20 / 43

(75)

Calcul booléen Portes logiques

&

&

≥1

1 1 x

y

y

x x·y+x·y

(IUT de Nantes - Dpt d'informatique ) 21 / 43

(76)

Calcul booléen Minimisation de circuits

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 22 / 43

(77)

Calcul booléen Minimisation de circuits

Construisez les circuits correspondant à xyz+xyz et xz. Des remarques ?

(IUT de Nantes - Dpt d'informatique ) 23 / 43

(78)

Calcul booléen Minimisation de circuits

1 x 0

0 y 1 f

xy xy xy xy

(IUT de Nantes - Dpt d'informatique ) 24 / 43

(79)

Calcul booléen Minimisation de circuits

Par exemple, pour xy+xy on obtient :

1 x 0

0 y 1 f

1 1

(IUT de Nantes - Dpt d'informatique ) 25 / 43

(80)

Calcul booléen Minimisation de circuits

f (x,y,z)=xyz+xyz+xyz+xyz+xyz.

1 x 0

00 01 yz 11 10 f

1 0 1 0

1 1 1 0

Alors f (x,y,z)=yz+xy+yz.

(IUT de Nantes - Dpt d'informatique ) 26 / 43

(81)

Calcul booléen Minimisation de circuits

f (x,y,z)=xyz+xyz+xyz+xyz+xyz.

1 x 0

00 01 yz 11 10 f

1 0 1 0

1 1 1 0

Alors f (x,y,z)=yz+xy+yz.

(IUT de Nantes - Dpt d'informatique ) 26 / 43

(82)

Calcul booléen Minimisation de circuits

f (x,y,z)=xyz+xyz+xyz+xyz+xyz.

1 x 0

00 01 yz 11 10 f

1 1 1 0

1 1 0 0

Cette fois, f (x,y,z)=y+xz.

(IUT de Nantes - Dpt d'informatique ) 27 / 43

(83)

Calcul booléen Minimisation de circuits

f (x,y,z)=xyz+xyz+xyz+xyz+xyz.

1 x 0

00 01 yz 11 10 f

1 1 1 0

1 1 0 0

Cette fois, f (x,y,z)=y+xz.

(IUT de Nantes - Dpt d'informatique ) 27 / 43

(84)

Calcul booléen Minimisation de circuits

Écrivez l'expression booléenne correspondant à ce diagramme :

10 11 01 00

x0x1

00 01x2x311 10 f

1 0 0 1

0 0 1 1

1 1 0 1

0 0 1 1

On obtient f (x0,x1,x2,x3)=x1x2+x1x3+x0x1x2

(IUT de Nantes - Dpt d'informatique ) 28 / 43

(85)

Calcul booléen Minimisation de circuits

Écrivez l'expression booléenne correspondant à ce diagramme :

10 11 01 00

x0x1

00 01x2x311 10 f

1 0 0 1

0 0 1 1

1 1 0 1

0 0 1 1

On obtient f (x0,x1,x2,x3)=x1x2+x1x3+x0x1x2

(IUT de Nantes - Dpt d'informatique ) 28 / 43

(86)

Un peu de Python

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 29 / 43

(87)

Un peu de Python fonctions

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 30 / 43

(88)

Un peu de Python fonctions

>>>deff(x): ... returnx**2 ...

>>> f(2) 4

(IUT de Nantes - Dpt d'informatique ) 31 / 43

(89)

Un peu de Python La structure conditionnelle

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 32 / 43

(90)

Un peu de Python La structure conditionnelle

defmax2(a, b): ifa<=b:

returnb else:

returna

(IUT de Nantes - Dpt d'informatique ) 33 / 43

(91)

Un peu de Python Les boucles tant que

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 34 / 43

(92)

Un peu de Python Les boucles tant que

defpgcd(a, b): whileb > 0:

a, b = b, a% b returna

(IUT de Nantes - Dpt d'informatique ) 35 / 43

(93)

Un peu de Python Les listes

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 36 / 43

(94)

Un peu de Python Les listes

>>> liste = [12,11,18,7,15,3]

>>> liste[0]

12

>>> liste[:2]

[12, 11]

>>> liste[2:]

[18, 7, 15, 3]

>>> liste[2:4]

[18, 7]

>>> liste[-1]

3

>>> tete=liste.pop(0)

>>> tete 12

>>> liste

[11, 18, 7, 15, 3]

>>>len(liste)

5

(IUT de Nantes - Dpt d'informatique ) 37 / 43

(95)

Un peu de Python Les listes

la méthode son eet

list.append(x) ajoute l'élémentxen n de liste

list.extend(L) ajoute en n de liste les éléments de L

list.insert(i, x) insère un élémentxen position i

list.remove(x) supprime la première occurence dex

list.pop(i) supprime l'élément d'indiceiet le renvoie

list.index(x) renvoie l'indice de la première occurence dex

list.count(x) renvoie le nombre d'occurences dex

list.sort() modie la liste en la triant

list.reverse() modie la liste en inversant l'ordre des éléments

(IUT de Nantes - Dpt d'informatique ) 38 / 43

(96)

Un peu de Python Les dictionnaires

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 39 / 43

(97)

Un peu de Python Les dictionnaires

>>> tel={’Roger’ :’02 40 00 00 00’, ’Marcelle’ : ’02 40 00 00 01’}

>>> tel[’Marcelle’]

’02 40 00 00 01’

>>> tel.has key(’Roger’) True

>>> tel.keys()

[’Marcelle’, ’Roger’]

(IUT de Nantes - Dpt d'informatique ) 40 / 43

(98)

Un peu de Python Les boucles pour

Sommaire

1 Calcul booléen Algèbre de Boole Fonctions booléennes Portes logiques Minimisation de circuits 2 Un peu de Python

fonctions

La structure conditionnelle Les boucles tant que Les listes

Les dictionnaires Les boucles pour

(IUT de Nantes - Dpt d'informatique ) 41 / 43

(99)

Un peu de Python Les boucles pour

>>> r=range(5)

>>> r

[0, 1, 2, 3, 4]

>>> s=range(3,9)

>>> s

[3, 4, 5, 6, 7, 8]

>>> t=range(3,9,2)

>>> t [3, 5, 7]

(IUT de Nantes - Dpt d'informatique ) 42 / 43

(100)

Un peu de Python Les boucles pour

>>>deff(n):

foriin range(n):

print(’Je me répète ’+str(n)+’ fois’)

... ... ...

>>> f(3)

Je me répète 3 fois Je me répète 3 fois Je me répète 3 fois

(IUT de Nantes - Dpt d'informatique ) 43 / 43

Références

Documents relatifs

Les chronogrammes sont une représentation graphique de l'évolution de l'état de variables d'entrées et de sorties, mais également les variables « internes » d'un

George Boole (mathématicien anglais, 1815-1864) découvre un espace dans lequel certains axiomes sont vérifiés, il démontre un certain nombre de théorèmes pouvant s'appliquer dans

temps maximum entre la modification du signal d'entrée et l'obtention d'un signal stable en sortie. ➢ le délai de

Une fonction logique peut être représentée par une table donnant pour toutes les combinaisons des états des variables, l'état correspondante de la fonctiona. Elle comporte 2 n

Ces  simplifications  peuvent  être  réalisées  graphiquement  à  l'aide  de  la  méthode  du  diagramme de  Karnaugh. Cette méthode se  fonde 

 A partir des propriétés de l'algèbre de Boole, transformer la fonction pour la simplifier. 

• Pour trouver une équation logique, il faut regrouper les valeurs de S égales à 1 dans des rectangles ayant comme nombre de cases une puissance de 2 (16, 8, 4, 2 ou 1 cases)...

Pour chacune des deux sp´ecifications de l’additionneur 1 bit complet, d´eterminer le chemin critique et le temps de propagation minimal `a travers le circuit (en fonction du temps