L'ensemble de Boole a été inventée par George Boole (1815-1864) dans la cadre de la logique en mathématiques. Comme de nombreuses autres branches des mathématiques, l'algèbre de Boole à une grande importance en informatique.
Un conseil : si vous voulez faire de l'informatique à haut niveau vous devez faire des mathématiques !
Selon les langages il existe un type pour des booléens (type Bool), en python True False existe par exemple mais pas en C où il faut utiliser en entier ou un char pour stocker un bool.
On peut se dire qu'un bool tient sur un bit mais on ne peut pas gérer un unique bit dans un ordinateur, la taille minimale utilisable est un byte (presque la même écriture que bit mais ce n'est pas la même chose) en général un byte est égal à un octet. En C attribuer un type pour un booléen entraîne une perte en mémoire (de 7 bits) et à une certaine époque cette perte n'était pas acceptable.
Les bons programmeurs peuvent réunir 8 bits dans un octet et donc ne pas perdre de place
En python un bool prend 28 bytes en mémoire comme un petit entier (pour le voir il faut utiliser import sys puis sis.getsizeof( ) ), le langage python n'est pas fait pour économiser de la mémoire !
$$\fonction{non}{\{VRAI,FAUX\}}{\{VRAI,FAUX\}}{x}{\left \{\begin{array}{rcl} VRAI~~si~x = FAUX \\ FAUX~~si~x = VRAI \end{array} \right.}$$
$$\fonction{et}{\{VRAI,FAUX\}²}{\{VRAI,FAUX\}}{x*y}{\left \{\begin{array}{rcl} VRAI~~si~x = y = VRAI \\ FAUX~~sinon \end{array} \right.}$$
A la place de et(x,y) on a l'habitude de noter x et y.
$$\fonction{ou}{\{VRAI,FAUX\}²}{\{VRAI,FAUX\}}{x*y}{\left \{\begin{array}{rcl} FAUX~~si~x = y = FAUX \\ VRAI~~sinon \end{array} \right.}$$
A la place de ou(x,y) on a l'habitude de noter x ou y.
En exercice, nous allons voir qu'avec deux et même avec une unique fonction nous sommes capable d'écrire toutes les fonctions bolléennes !
Le programme suivant permet de voir tous les cas pour n=3 mais il ne donne pas le résultat le plus simple !
a= VRAI et non(FAUX) et b=non(VRAI ou FAUX) alors :
a= non(VRAI) ou FAUX et b= non(non(VRAI)) alors :
La table de f(x,y) = (x ou y) et y est
La table suivante coorrespond à quelle fonction ?
La fonction ou exclusif (xor en anglais) est définie par la table suivante :
On considére la fonction bolléennes unite(x,y,z) qui a trois variables x, y et z exprimées par 0 ou 1 associe le chiffre des unités de la somme en binaire de x de y et de z. Par exemple unite(1,0,1) donne 0 car 1 + 0 + 1 = 210 = 102. Ici 1 est le chiffre des "deuzaines" 0 celui des unités.
On considére la fonction bolléennes deuzaine(x,y,z) qui a trois variables x, y et z exprimées par 0 ou 1 associe le chiffre des deuzaines de la somme en binaire de x de y et de z. Par exemple deuzaine(1,0,1) donne 1 car 1 + 0 + 1 = 210 = 102. Ici 1 est le chiffre des "deuzaines" 0 celui des unités.
On souhaite exprimer toutes les fonctions booléennes avec seulement deux fonctions de bases :
L'exrcice introduit une fonction importante.
La fonction de Sheffer est égale à S(x,y) = non(x et y).
phpMyVisites | Open source web analytics