• Aucun résultat trouvé

Mathématiques Probabilitéspourl’informatique(I)

N/A
N/A
Protected

Academic year: 2022

Partager "Mathématiques Probabilitéspourl’informatique(I)"

Copied!
70
0
0

Texte intégral

(1)

Mathém atiques

IUT INFO 1 / 2011-2012

Licence Creative Commons MAJ: 10 février 2013

Probabilités pour

l’informatique (I)

Guillaume C

ONNAN

(2)

T A B L E D E S M A T I È R E S

1 Scilab for dummies 4

1.1 Avant de commencer . . . . 5

1.2 Scilab comme super-calculatrice . . . . 5

1.2.1 Les opérations de base . . . . 5

1.2.2 Un brin d’informatique . . . . 6

1.2.3 Définir une fonction . . . . 7

1.3 L’objet de base de Scilab : la matrice . . . . 7

1.3.1 Utilisation d’une matrice ligne . . . . 7

1.4 Les graphiques . . . . 9

1.5 La programmation . . . . 10

1.5.1 Les tests . . . . 10

1.5.2 Boucles for . . . . 12

1.5.3 Boucles while . . . . 12

1.6 Probabilités et statistiques . . . . 13

2 Dénombrement 14 2.1 Rappels de théorie des ensembles . . . . 15

2.1.1 Ensembles finis . . . . 15

2.1.2 Parties d’un ensemble . . . . 15

2.2 Une dose d’algèbre générale . . . . 15

2.2.1 Relation d’ordre . . . . 15

2.2.2 Loi de composition interne . . . . 16

2.2.3 Lien avec les opérateurs logiques . . . . 16

2.2.4 Partition . . . . 16

2.2.5 Produit cartésien . . . . 16

2.3 Quelques résultats sur les cardinaux . . . . 16

2.3.1 Cardinal de P (E) . . . . 16

2.3.2 Cardinal d’une partition . . . . 17

2.3.3 Cardinaux et inclusion . . . . 17

2.3.4 Cardinal d’un produit cartésien . . . . 17

2.3.5 Formule du crible . . . . 17

2.4 Dénombrement . . . . 18

2.4.1 Nombre de permutations . . . . 18

2.4.2 Nombre d’applications injectives - arrangements sans répétitions . . . . 18

2.4.3 Combinaisons sans répétition . . . . 19

2.5 Triangle de Pascal - Binôme de Newton . . . . 19

2.6 EXERCICES . . . . 21

3 Espace probabilisé discret 28 3.1 Probabilités ? . . . . 29

3.2 Avant la formalisation . . . . 29

3.3 Espace probabilisable - Espace probabilisé . . . . 30

3.4 Probabilités conditionnelles . . . . 32

3.4.1 Un exemple pour comprendre . . . . 32

3.4.2 Définition . . . . 32

3.4.3 Arbre . . . . 32

3.4.4 Formule de BAYES . . . . 33

3.4.5 Indépendance . . . . 33

3.5 Variables aléatoires réelles finies . . . . 34

3.5.1 Définition . . . . 34

3.5.2 Loi de probabilité . . . . 35

3.5.3 Variables aléatoires indépendantes . . . . 36

3.5.4 Fonctions de répartition . . . . 37

3.5.5 Espérance mathématique . . . . 37

3.5.6 Variance . . . . 38

3.5.7 Linéarité de l’espérance . . . . 38

(3)

3.5.8 Théorème de König-Huygens . . . . 38

3.5.9 V.a.r. centrée réduite . . . . 38

3.5.10 Fonction indicatrice d’un évènement . . . . 39

3.6 Quelques lois discrètes classiques . . . . 39

3.6.1 Loi uniforme (discrète) . . . . 39

3.6.2 Loi de Bernoulli : to be or not to be . . . . 39

3.6.3 Loi binomiale . . . . 40

3.6.4 Loi hypergéométrique . . . . 40

3.6.5 Loi géométrique . . . . 41

3.6.6 Loi de Pascal . . . . 41

3.6.7 Loi binomiale négative . . . . 41

3.6.8 Loi de Poisson . . . . 42

3.7 Somme de v.a.r. indépendantes - Stabilité . . . . 42

3.7.1 Convolution . . . . 42

3.7.2 Somme de v.a.r. indépendantes . . . . 42

3.7.3 Applications . . . . 43

3.8 EXERCICES . . . . 44

4 Initiation aux processus aléatoires 55 4.1 Vision dynamique des probabilités - Automates . . . . 56

4.1.1 Découverte . . . . 56

4.1.2 Premier exemple - Règles de parcours . . . . 56

4.1.3 Deuxième exemple - Valeur moyenne . . . . 58

4.2 Comportement asymptotique des chaînes de M

ARKOV

. . . . 59

4.3 Exercices . . . . 63

4.3.1 Chaînes absorbantes - automates . . . . 63

4.3.2 Avec le calcul matriciel . . . . 64

5 Loi normale 65 5.1 Densité de probabilité . . . . 66

5.2 Tout sur la loi normale . . . . 66

6 Simulation informatique et probabilités 68

(4)

Introduction

Claude Elwood S

HANNON

(1916 - 2001) est un mathématicien-inventeur-jongleur américain qui, suite à son article «

A mathematical theory of communications

» paru en 1948, est consi- déré comme le fondateur de la

théorie de l’information

qui est bien sûr une des bases de...l’informatique.

L’idée est d’étudier et de quantifier l’« information » émise et reçue : quelle est la compression maximale de données digitales ? Quel débit choisir pour transmettre un message dans un canal

« bruité » ? Quel est le niveau de sûreté d’un chiffrement ?...

La théorie de l’information de S

HANNON

est fondée sur des modèles probabilistes : leur étude est donc un préalable à l’étude de problèmes de réseaux, d’intelligence artificielle, de systèmes complexes.

Par exemple, dans le schéma de communication présenté par S

HANNON

, la source et le destina- taire d’une information étant séparés, des perturbations peuvent créer une différence entre le message émis et le message reçu. Ces perturbations (bruit de fond thermique ou accoustique, erreurs d’écriture ou de lecture, etc.) sont de nature

aléatoire

: il n’est pas possible de prévoir leur effet. De plus, le message source est par nature

imprévisible

du point de vue du destinataire (sinon, à quoi bon le transmettre).

Nous n’aborderons ici que les bases de la théorie des probabilités afin de faciliter l’étude de la théorie de l’information qui sera abordée par certain(e)s à leur sortie de l’I

UT

. L’information étant transmise sous forme digitale, nous étudierons principalement les probabilités discrètes sans pour autant négliger le monde analogique : nous aborderons donc aussi les probabilités continues.

La théorie des probabilités est une branche des mathématiques qui permet d’étudier les phénomènes où le hasard intervient et permet de formali- ser le raisonnement en présences d’informations partielles. C’est une sciencedéductive au même titre que les autres branches des mathématiques.

Vous avez « tourné » autour des probabilités depuis de nombreuses années mais sans vraiment définir les notions que vous aviez abordées : c’est un peu à l’image de cette partie des mathématiques qui a fait son apparition aux alentours du XVI

e

siècle pour permettre aux princes d’estimer leur espérance de gain mais qui n’a reçu sa formalisation rigoureuse qu’au début du XX

e

siècle sous l’impulsion du russe K

OLMOGOROV

, alors qu’à titre de comparaison, la géométrie avait subi le même sort par E

UCLIDE

...2200 ans plus tôt !

La statistique est elle une science

inductive

: elle part d’observations élémentaires et on cherche à induire des lois générales.

Nous veillerons donc à séparer leur étude même si ces domaines interagissent largement.

D’ailleurs, le domaine d’application des probabilités en informatique dépasse la théorie de l’information : on évoquera l’algorithme de M

ILLER

-

R

ABIN

qui permet de générer des grands nombres entiers « fortement probablement premiers », la gestion des files d’attente (de personnes, de

fichiers, dans un réseau,...), etc.

(5)

1

Scilab for dummies

C H A P I T R E

Scilab est un logiciel libre, multiplateforme de calcul numé-

rique orienté informatique industrielle et ingénierie. Certains

d’entre vous l’utiliseront peut-être dans leurs projets de se-

conde année. Il dispose également d’outils performants pour

traiter les statistiques et les probabilités. Le logiciel R était éga-

lement bien placé mais sont typage plus que flou ne pouvait

convenir à des informaticien(nne)s...Il y avait aussi la piste

Caml : on peut tout faire en Caml et d’ailleurs un collègue de la

Fac de maths travaille actuellement à fabriquer un scilab made

in Caml mais pour l’instant, il est plus utile d’utiliser une boîte

à outils bien faite et largement répandue dans le monde in-

dustriel, ou tout au moins sous la forme de son clone au prix

exorbitant, Matlab...

(6)

6 1.1. AVANT DE COMMENCER

Avant de commencer

1

SCILAB est téléchargeable rapidement à l’adresse suivante : http ://www.scilab.org/

Le logiciel est accompagné d’une documentation très complète. Vous pouvez compléter votre apprentissage en parcourant « Le guide du calcul avec des logiciels libres » paru chez Dunod en 2008 :-)

De nombreux TP sont présents sur le site de Scilab référencé ci-dessus.

Il faut savoir que scilab, comme matlab, est basé sur un noyau de fonctions en Fortran ou en C déjà compilées donc rapides d’utilisation. En revanche, tout ce que vous créerez vous-même sera interprété ce qui ralentira l’exécution par rapport à d’autres langages. De plus, la gestion des nombres n’est pas toujours optimale car ils sont codés en complexes double précision ce qui peut être lourd.

Scilab comme super-calculatrice

2

2 1 Les opérations de base

Scilab peut fonctionner de manière classique :

--> 3+2

Si on ajoute un « ; » à la fin de la ligne, celle-ci est lue par SCILAB mais le résultat n’est pas affiché : c’est le mode silencieux.

Mais Scilab fait du calcul numérique ; les résultats sont donc donnés sous forme de nombres à virgule flottante :

--> 1+sqrt(2)

sachant que

sqrt

désigne la racine carrée (SQare RooT en anglais...).

Navigation et historique

On ne peut pas recommencer un calcul en plaçant le curseur de la souris sur une ligne précédente déjà évaluée. En revanche, avec les touches

Page

et

Page

, on peut naviguer dans l’historique et réafficher des commandes précédentes.

Remarque

Par défaut, les résultats sont affichés avec 10 caractères. Pour avoir plus de précision, on utilise

format

:

--> format(20); 1+sqrt(2)

2 . 41421356237309492

On peut vouloir utiliser l’écriture scientifique d’un nombre : il faut préciser l’option

’e’

:

--> format(’e’,20); 1+sqrt(2)

2 . 4142135623731D + 00 Le

D+00

signifie mathématiquement × 10

0

.

On peut revenir à la configuration par défaut avec l’option

’v’

:

--> format(’v’,10)

Certaines constantes utiles sont déjà implémentées comme π :

--> %pi

3 . 1415927 et exp(1) :

--> %e

(7)

2 . 7182818

Pour les fonctions usuelles, la syntaxe est assez standard. Veuillez toutefois noter que le logarithme népérien se note

log

:

--> log(%e^2)

2

Notez une particularité des logiciels de calcul numérique :

--> sin(%pi)

1 . 225D 16

C’est le « zéro » fixé par Scilab qui est affiché...

On peut faire malgré tout des calculs avec des nombres plus petits :

--> 1D-25 - 1D-26

9 . 000D 26

La valeur du « zéro » de Scilab est donnée par %eps :

--> %eps

2 . 220D 16

Cela peut jouer des tours pour l’addition :

--> N=1D30; P=1D10;

--> N-N+D

--> N+D-N

Il faudra donc faire attention au moment de faire des tests d’égalité. Nous étudierons la norme IEEE 754 plus en détail en deuxième année.

On peut travailler avec des nombre complexes, le nombre de carré − 1 se notant %i :

--> (3+%i)^2

--> abs(1+%i)

2 2 Un brin d’informatique

2 2 1 Types

Scilab travaille avec des objets de différents types et ne les traite pas de la même manière. Il faut distinguer : – les réels et les complexes ;

– les booléens : %T pour vrai (True) et %F pour faux (False) ; – les polynômes ;

– les chaînes de caractères entre apostrophes ; – les listes ;

– les fonctions ;

– et bien d’autres encore...

On obtient le type d’un objet avec

typeof

:

--> typeof(%e)

constant

--> typeof(’%e’)

string

(8)

8 1.3. L’OBJET DE BASE DE SCILAB: LA MATRICE

2 2 2 Opérateurs

Scilab possède les opérateurs arithmétiques habituels

(+), (-), (*), (/)

mais aussi une division inversée (\) et les opérateurs pointés dont nous parlerons plus tard.

Il sera également important d’utiliser les opérateurs booléens qui testent l’égalité

(==)

, la non-égalité

(<>)

, les inégalités strictes et larges

(<), (>), (<=), (>=)

. Le résultat est un booléen ( %T ou %F ) :

--> 1+%eps/2==1

T

Ce dernier résultat s’explique du fait que la différence entre les deux termes est inférieure à %eps

Enfin il existe des opérateurs logiques qui seront également utiles dans les tests : la négation ( ~ ), l’opérateur ET ( & ) et l’opérateur OU ( | ). Par exemple :

--> ~(3<3) == (3>=3)

T

La négation de 3 < 3 est bien 3 > 3.

2 2 3 Affectation

Pour donner un nom à une case mémoire où nous voulons stocker un objet, on utilise

(=)

:

--> a=3;

--> a^2

--> ans^2

La commande

ans

reprend en effet le résultat de la commande précédente.

La commande

who

permet de rappeler quelles sont les variables affectées.

Pour supprimer une variable affectée, on utilise

clear

:

--> clear a

La commande

clear

utilisée toute seule effacera toutes les variables affectées.

2 3 Définir une fonction

On peut définir toutes sortes de fonctions, d’une ou plusieurs variables, numériques ou non à l’aide de la syntaxe suivante :

--> function y=truc(x) y=x*log(x) endfunction

On utilise ensuite la fonction créée de manière naturelle :

--> truc(2)

1 . 3862944

L’objet de base de Scilab : la matrice

3

3 1 Utilisation d’une matrice ligne

Même si on ne s’en aperçoit pas tout de suite, tout est matrice pour Scilab, c’est-à-dire un sorte de tableau.

Cela n’est pas naturel à un(e) élève sortant du lycée mais cela peut présenter des avantages. Occupons-nous d’abord des matrices-ligne, c’est-à-dire d’une sorte de tableau comportant une seule ligne.

Par exemple, nous voulons obtenir les valeurs prises par une fonction en certaines valeurs :

--> va = [1 3 74 100*%pi]

(9)

1 3 74 314.15927

Si on veut que ces valeurs soient incrémentées régulièrement :

--> x = [0:2:11]

0 2 4 6 8 10

On obtient ainsi une suite arithmétique de nombres de premier terme 0, de raison 2 et inférieurs à 11.

Par défaut, l’incrément est de 1 :

--> y = [0:9]

0 1 2 3 4 5 6 7 8 9 L’incrément peut être négatif et non entier :

--> X = [0:-2.5:-13]

0 − 2.5 − 5 − 7.5 − 10 − 12.5

On a facilement les valeurs de quelques suites obtenues à partir des précédentes :

--> x^2

0 4 16 36 64 100

On peut extraire une valeur de ces matrices :

--> x(3)

4

ou une partie de ces valeurs :

--> x(1:3)

0 2 4

Le dernier élément d’une matrice est obtenu à l’aide de $ :

--> x($)

On peut extraire des composantes vérifiant une condition avec la commande

find

qui renvoie les rangs ré- pondant à la demande :

--> find(x>5)

4 5 6

On peut ajouter une valeur à une matrice :

--> Xnew=[X,32]

0 − 2.5 − 5 − 7.5 − 10 − 12.5 32 ou concaténer deux matrices :

--> GrandX=[x,[1 2]]

0 2 4 6 8 10 1 2

On peut effectuer des opérations entre ces vecteurs. Par exemple, essayons de les multiplier terme à terme :

(10)

10 1.4. LES GRAPHIQUES

--> x*X

Attention ! Les opérateurs arithmétiques

(*), (/)

et ( \ ) effectuent des opérations sur des matrices. Souvenez- vous que ces opérations n’ont presque rien à voir avec celles sur les entiers. En particulier, ab 6= ba en général.

Pour effectuer ces dernières opérations « terme à terme », il faut utiliser les opérateurs pointés sans oublier de laisser une espace entre le premier terme et le point :

--> x .*X

0 −5 −20 −45 −80 −125

Des matrices particulières peuvent être utiles : zeros(m,n) et ones(m,n) renvoient des matrices rem- plies respectivement de 0 et de 1.

Pour extraire des lignes ou des colonnes ou des éléments particuliers :

A=[1,2,3;

4,5,6;

7,8,9]

A(1,3) A(1,:) A(:,1) A($,:)

Les graphiques

4

On commence par créer un vecteur de 10000 valeurs régulièrement espacées entre 0 et 100 :

--> x=linspace(0,100,10000);

On aurait pu aussi bien poser :

--> x=0:.01:100

Nous voulons obtenir la représentation graphique de la fonction x 7→ x · sin(x) sur [0;100] :

--> plot(x,x .*sin(x))

0 10 20 30 40 50 60 70 80 90 100

−100

−80

−60

−40

−20 0 20 40 60 80 100

Pour rajouter d’autres courbes sur la figure, nous avons plusieurs possibilités : – demander une autre courbe :

--> plot(x,x)

(11)

--> plot(x,-x)

– soit tout demander en même temps. Pour éviter les superpositions, il faut donc effacer la figure précé- dente grâce à la commande

clf

:

--> clf; plot(x,x .*sin(x),x,x,x,-x)

On peut modifier le style des courbes à partir des menus de la fenêtre graphique ou en ligne de commandes :

--> X=linspace(-%pi,%pi,20);

ou bien

--> X=-%pi:%pi/10:%pi

--> clf; plot(X,sin(X),"+-b")

L’option +-b signifie qu’on représente chaque point par une croix (+), qu’on les relie par un trait continu (-), en bleu (b).

−4 −3 −2 −1 0 1 2 3 4

−1.0

−0.8

−0.6

−0.4

−0.2 0.0 0.2 0.4 0.6 0.8 1.0

Il existe d’autres raccourcis :

Couleur jaune magenta cyan rouge vert bleu blanc noir

Symbole y m c r g b w k

Style de ligne plein tirets pointillés mixte

Symbole - - : -.

Style de

point plus rond astérique point croix

Symbole + o * . x

N’hésitez pas à explorer l’aide sur

gce

et

gda

pour plus de « configurabilité ».

La programmation

5

5 1 Les tests

5 1 1 Si...alors...sinon

Construisons par exemple une fonction donnant la valeur absolue d’un nombre

a

a. Cette fonction existe déjà sur Scilab (abs) mais il nous faut un exemple simple...

(12)

12 1.5. LA PROGRAMMATION

--> function y = ABS(x) if x >= 0 then

y=x else

y=-x end endfunction

En indentant son programme pour mettre en valeur les différentes structures créées, on le rend plus lisible.

5 1 2 Éditeur de programme

Il existe un éditeur de texte dédié à Scilab (onglet

Editor

) qui permet de travailler à part sur son programme avant de l’éxécuter.

On clique alors sur

Execute -> Load into scialb

ou on appuie sur

Ctrl

+

L

pour exécuter le programme et l’envoyer vers Scilab. Si une erreur est décelée, le « débuggeur » est là pour vous aider à la déceler.

De retour dans Scilab, on appuis sur

Entrée

et on peut utiliser la fonction ABS comme tout à l’heure. Cela ne sera vraiment utile que pour de longs programmes.

On peut également, depuis l’éditeur, enregistrer le programme puis utiliser la commande

exec le_chemin_vers_le_fichier.sci

:

--> exec(’./ABS.sci’)

5 1 3 Emploi de return et de elseif

Dans l’exemple précédent il n’y avait qu’une seule alternative : x ou − x.

Intéressons-nous maintenant à des programmes dont les structures conditionnelles sont imbriquées.

Par exemple, construisons une fonction

Sol

qui donne les solutions d’une équations du second degré de la forme ax

2

+ bx + c = 0. On pourrait construire notre programme comme précédemment :

function y=Sol(a,b,c) d=b^2-4*a*c

if d>0 then

y=[(-b-sqrt(d))/(2*a) (-b+sqrt(d))/(2*a)]

else

if d<0 then

y=[(-b-%i*sqrt(-d))/(2*a) (-b+%i*sqrt(-d))/(2*a)]

else y=-b/(2*a) end

end endfunction

Cependant, il faut être très prudent et ne pas oublier de

end

et bien savoir se retrouver dans l’imbrication de conditions.

Il existe un moyen plus efficace qui permet de rester dans le même test : la commande

elseif

:

function y=Sol(a,b,c) d=b^2-4*a*c

if d>0 then

y=[(-b-sqrt(d))/(2*a) (-b+sqrt(d))/(2*a)]

elseif d<0 then

y=[(-b-%i*sqrt(-d))/(2*a) (-b+%i*sqrt(-d))/(2*a)]

else

y=-b/(2*a) end

endfunction

(13)

Un moyen qui peut parfois s’avérer encore plus efficace est d’utiliser

return

qui permet de sortir d’un pro- gramme et de gagner ainsi du temps de compilation :

function y=Sol(a,b,c) d=b^2-4*a*c

if d>0 then

y=[(-b-sqrt(d))/(2*a) (-b+sqrt(d))/(2*a)]

return(y) end if d<0 then

y=[(-b-%i*sqrt(-d))/(2*a) (-b+%i*sqrt(-d))/(2*a)]

return(y) end y=-b/(2*a) endfunction

5 2 Boucles for

Par exemple, calculons la somme S des 25 premiers entiers. Il faut commencer par initialiser S :

--> S=0;

--> for i=1:25 do S=S+i; end

Rappelez-vous que

1:25

crée la liste des entiers de 1 à 25. L’emploi du mode silencieux après le

S=S+i

permet d’éviter d’afficher tous les résultats intermédiaires.

On peut aussi boucler sur les éléments d’une matrice.

5 3 Boucles while

Reprenons le calcul de la somme des 25 premiers entiers :

--> S=0; i=1;

--> while i<=25 do S=S+i; i=i+1; end

(14)

14 1.6. PROBABILITÉS ET STATISTIQUES

Probabilités et statistiques

6

Voici quelques outils qui nous serons utiles en TD.

rand(l,c) renvoie une matrice de l lignes et c colonnes dont les coefficients sont des nombres de [0,1[

aléatoirement choisis selon la distribution uniforme.

Par exemple, pour simuler 100 sorties d’un dé à six faces, on peut faire :

-->m=floor(6*rand(10,10)+1)

m =

1. 4. 6. 4. 2. 6. 5. 3. 6. 4.

1. 5. 2. 6. 5. 6. 5. 6. 5. 5.

6. 2. 1. 1. 5. 1. 4. 6. 5. 2.

5. 1. 1. 1. 4. 2. 5. 2. 1. 1.

2. 1. 5. 5. 4. 4. 3. 6. 6. 4.

5. 3. 1. 2. 6. 6. 6. 1. 5. 6.

3. 5. 1. 3. 3. 2. 3. 2. 6. 2.

3. 3. 2. 5. 1. 3. 1. 1. 6. 2.

2. 5. 5. 1. 4. 5. 4. 4. 3. 4.

3. 6. 4. 1. 3. 5. 6. 5. 6. 3.

La fonction tabul(mat) est très pratique : elle renvoie une matrice de deux colonnes avec les valeurs prises par les coefficients de mat sur la première colonne et leurs effectifs respectifs sur la deuxième.

t = tabul(m)

Pour obtenir une représentation graphique sous forme d’un diagramme en bâtons, on utilise bar(liste des abs,liste des ord) :

-->bar(t(:,1),t(:,2))

On peut préférer un camembert (une tarte en anglais...)

-->pie(r(:,2),r(:,1),string(r(:,1)))

(15)

2

Dénombrement

C H A P I T R E

Lors de l’étude des probabilités discrètes, il est primordial de compter le nombre d’événements réalisables. On met donc en « correspondance » des éléments de N avec des événe- ments : on dénombre.

Cela peut parfois être simple : combien y a-t-il d’issues à une expérience de pile ou face ?...

Mais on peut souvent avoir besoin d’outils performants que

nous allons présenter après quelques petits rappels.

(16)

16 2.1. RAPPELS DE THÉORIE DES ENSEMBLES

Rappels de théorie des ensembles

1

1 1 Ensembles finis

Il est aisé de comprendre intuitivement ce qu’est un ensemble fini. En voici une définition : Ensemble fini

On dit qu’un ensemble E est fini si, et seulement si, il existe un entier naturel n et une bijection ϕ de

‚ 1,n ƒ sur E.

Définition 2 - 1

Cela signifie en fait que chaque élément d’un ensemble fini E porte un numéro de dossard et qu’on connaît le nombre total de dossards : n. Ce nombre jouant un rôle important, on lui donne un nom :

Cardinal d’un ensemble fini

L’entier n défini précédemment est appelé cardinal de E et noté Card(E) ou | E | .

Définition 2 - 2

Si on considère l’ensemble formé des pages de cet ouvrage, il constitue un ensemble fini : quel est son cardi- nal ?

Par convention, l’ensemble vide est de cardinal nul : |;| = 0.

1 2 Parties d’un ensemble

Parties d’un ensemble

Soit E un ensemble. L’ensemble formé de tous les sous-ensembles de E est appelé ensemble des parties de E et noté P (E).

Définition 2 - 3

Il faudra donc faire bien attention au moment d’utiliser les symboles ∈ et ⊆ . Ainsi : A ∈ P (E) ⇐⇒ A ⊆ E

Si E

2

= © a,b ª

alors P (E

2

) = n

; , © a ª

, © b ª

, © a,b ª o

.

Nous aurons également besoin de parler des éléments de E qui n’appartiennent pas à une de ses parties.

Complémentaire d’une partie

Soit A une partie de E. On appelle complémentaire de A dans E l’ensemble des éléments de E qui n’ap- partiennent pas à A. On note cet ensemble A

E

, {

E

A ou plus simplement A quand il n’y a pas d’ambiguïté.

Définition 2 - 4

Par exemple, le complémentaire de l’ensemble des filles dans une classe est l’ensemble des garçons de cette classe. La notation permet de faire le lien avec la négation d’une proposition : la négatiion de « x ∈ A » est

« x ∈ A »...

Une dose d’algèbre générale

2

2 1 Relation d’ordre

Soit A, B et C trois éléments de P (E).

Considérons la relation d’inclusion ( ⊆ ) qui relie deux éléments quelconques de P (E).

On obtient facilement que :

– A ⊆ A : on dit que la relation ⊆ est réflexive ;

– A ⊆ B ∧ B ⊆ A =⇒ A = B : on dit que la relation ⊆ est antisymétrique ; – A ⊆ B ∧ B ⊆ C =⇒ A ⊆ C : on dit que la relation ⊆ est transitive.

la relation d’ordre

Ces trois propriétés étant vérifiées, on dit que ⊆ est une relation d’ordre sur P (E).

Théorème 2 - 1

Vous vérifierez que la relation 6 sur R a exactement les mêmes propriétés : vous commencez à entrevoir l’es-

sence de l’algèbre qui est de dégager et d’étudier des structures les plus générales possibles afin de simplifier

l’étude de phénomènes qui paraissaient différents.

(17)

2 2 Loi de composition interne

réunion d’ensembles

La réunion de deux ensembles A et B notée A ∪ B est l’ensemble des éléments appartenant à A OU B.

Définition 2 - 5

Le « ou » correspond bien sûr à celui de la définition ?? page ??, c’est-à-dire qu’il est inclusif.

– Comme A ∪ B est encore un élément de P (E), on dit que ∪ est une loi de composition interne ; – comme A∪ (B ∪C) = (A ∪B) ∪ C, on dit que la loi ∪ est associative ;

– comme A∪ B = B ∪ A, on dit que la loi ∪ est commutative ;

– comme A ∪ ; = A, on dit que ; est une élément neutre pour la loi ∪ ; – comme A ∪ A = A, on dit que la loi ∪ est idempotente.

On peut remarquer que ces propriétés sont vérifiées par l’addition sur N , l’élément neutre étant 0.

intersection d’ensembles

L’intersection de deux ensembles A et B notée A ∩ B est l’ensemble des éléments appartenant à A ET B.

Définition 2 - 6

Vous vérifierez que la loi ∩ a les mêmes propriétés que ∪ avec cette fois comme élément neutre E.

2 3 Lien avec les opérateurs logiques

Comme souvent en mathématiques, on retrouve des structures semblables dans des domaines différents.

Nous avons déjà découvert les liens entre ∪ et OU puis entre ∩ et ET.

On peut également faire le rapprochement entre l’implication des propositions et l’inclusion des ensembles,

« vrai » correspondant « ∈ ».

Ainsi, si deux ensembles A et B vérifient A ⊆ B, alors il est impossible de trouver un élément x tel que x ∈ A et x 6∈ B. Tous les autres cas sont possibles.

De même, si A =⇒ B, il est impossible que A soit vraie et B soit fausse. Toutes les autres propositions sont vraies.

On fait le même rapprochement entre l’équivalence des propositions et l’égalité des ensembles. Merveilleuses mathématiques...

2 4 Partition

On a souvent besoin de découper un ensemble en tranches (souvenez-vous de votre cours de terminale sur les probabilités totales...). Voici une définition utile :

Partition d’un ensemble

La famille (A

i

)

i∈‚1,nƒ

de parties non vides d’un ensemble E réalise une partition de cet ensemble si, et seulement si :

i 6= j A

i

∩ A

j

= ; et [

n

i=1

A

i

= E

Définition 2 - 7

Par exemple, une partie A de E et son complémentaire dans E réalise une partition de E car A ∩ A = ; et A ∪ A = E.

2 5 Produit cartésien

Produit cartésien

Soit (A

i

)

i∈‚1,nƒ

des parties d’un ensemble E. Le produit Y

n

i=1

A

i

= A

1

× A

2

×·× A

n

est l’ensemble des n-listes (x

1

,x

2

,..., x

n

) telles que x

1

∈ A

1

,...,x

n

∈ A

n

.

Définition 2 - 8

Soit A = ©

1,3,5,7,9 ª

et B = ©

0,2,4,6,8 ª

. Alors (1,0) est un élément de A × B et (0,1) est un élément de B × A.

L’ordre des ensembles dans le produit et donc des éléments dans les n-listes est important !

Quelques résultats sur les cardinaux

3

3 1 Cardinal de P (E) Soit E

2

= ©

a,b ª

et E

3

= © a,b,c ª

. En fait, E

3

= E

2

∪ © c ª

. Les parties de E

3

sont donc les parties de E

2

et ces

mêmes parties auxquelles on adjoint c.

(18)

18 2.3. QUELQUES RÉSULTATS SUR LES CARDINAUX

En effet, P (E

3

) = n

; , © a ª

, © b ª

, © a,b ª

, ; ∪ © c ª

, © a ª

∪ © c ª

, © b ª

∪ © c ª

, © a, b ª

∪ © c ª o

. Ainsi | P (E

3

)| = 2 × | P (E

2

)|.

Notons de manière générale E

n

un ensemble à n éléments avec n ∈ N et E

n+1

= E

n

∪ © α ª

avec α 6∈ E

n

. On montre facilement que | P (E

n+1

)| = 2 × | P (E

n

)|. Or P (E

0

) = ©

; ª

donc | P (E

0

)| = 1.

une rapide récurrence permet donc de prouver que :

Cardinal de P (E)

Si |E| = n alors | P (E)| = 2

n Théorème 2 - 2

3 2 Cardinal d’une partition

Il est assez immédiat d’obtenir le résultat suivant :

Cardinal d’une partition

Si la famille (A

i

)

i∈‚1,nƒ

de parties non vides d’un ensemble E réalise une partition de cet ensemble alors :

|E| = X

n

i=1

|A

i

|

Théorème 2 - 3

Pour compter les élèves du lycée, il suffit de compter les élèves de chaque classe et d’additionner les résul- tats...

3 3 Cardinaux et inclusion

∀ (A,B) ∈ P (E) × P (E), A ⊆ B =⇒ | A | 6 | B |

Théorème 2 - 4

Pour le prouver, il suffit d’utiliser une petite ruse (bientôt) habituelle : A et A ∩ B forment une partition de B donc, d’après le théorème 2 - 3, |A| + ¯

¯

¯ A ∩ B ¯

¯

¯ = | B|, donc |A| 6 |B|

Cette application n’est pas une équivalence ! Prenez A = © 1 ª

et B = © 3;4 ª 3 4 Cardinal d’un produit cartésien

Voici un autre résultat qui sera bien utile en probabilités :

Cardinal d’un produit cartésien

Soit (A

i

)

i∈‚1,nƒ

des parties d’un ensemble E.

¯

¯

¯

¯

¯ Y

n i=1

A

i

¯

¯

¯

¯

¯

= Y

n i=1

| A

i

|

Théorème 2 - 5

En effet, pour chaque n-liste (x

1

,...,x

n

), il y a |A

1

| choix pour la première composante, |A

2

| choix pour la deuxième, etc.

3 5 Formule du crible

Nous n’en verrons qu’un cas particulier que vous devez déjà connaître :

Formule du crible pour deux ensembles

∀(A,B) ∈ P (E) × P (E), |A ∪B| = |A| + |B| − |A ∩ B|

Théorème 2 - 6

Pour le démontrer, nous allons former une partition de A ∪B avec A ∩ B, A∩ B et A ∩B.

Mais on peut également « partitionner » A avec A ∩ B et A ∩B puis « partitionner » B avec B ∩ A et B∩ A.

On obtient donc que | A | = ¯

¯

¯ A ∩ B ¯

¯

¯ + | A ∩ B | puis que | B | = ¯

¯

¯ B ∩ A ¯

¯

¯ + | B ∩ A | . On en déduit que |A| + |B| = ¯

¯

¯ A∩ B ¯

¯ ¯+ ¯

¯

¯ B ∩ A ¯

¯ ¯+ |A ∩B| + |B ∩ A| et enfin que :

|A| + |B| − |A ∩B| = ¯

¯

¯ A ∩B ¯

¯

¯ + ¯

¯

¯ B ∩ A ¯

¯

¯ + |A∩ B| = |A∪ B|

(19)

Dénombrement

4

4 1 Nombre de permutations

Permutation

Soit E un ensemble. Une permutation de E est une application bijective de E sur E. On note S (E) l’en- semble des permutations de E.

Définition 2 - 9

Généralement, on note les permutations sous forme d’une matrice où la première ligne correspond aux éléments de E et où la deuxième ligne correspond aux images des éléments de E.

Par exemple, les permutations de © a,b,c ª

sont : Ã a b c

a b c

! Ã a b c

a c b

! Ã a b c b a c

! Ã a b c

b c a

! Ã a b c

c a b

! Ã a b c

c b a

!

On peut même se contenter d’écrire (a,b,c), (a,c,b), (b,a,c), (b,c ,a), (c,a,b), (c,b,a) si l’on est sûr que la première ligne est toujours (a,b,c ).

Nombre de permutations

Il y a n! permutations d’un ensemble de n éléments.

Théorème 2 - 7

La démonstration s’effectue par récurrence. Il y a bien sûr 1 ! façon de permuter 1 élément.

On peut donc supposer qu’il existe au moins un entier k tel qu’il y ait k ! permutations d’un ensemble à k éléments.

Considérons un ensemble à k + 1 éléments. On en choisit 1 : il y a k + 1 choix possibles. Ensuite, il s’agit d’ordonner les k éléments restant ce qui laisse k ! possibilités.

Il y a donc finalement (k + 1) × k ! = (k + 1)! permutations au total.

On retrouve dans l’exemple précédent qu’il y a 3! = 6 permutations de © a,b,c ª

. On conviendra que 0! = 1.

On a déjà rencontré les permutations lors de notre découverte de la cryptographie. Elles jouent également un rôle important dans les algorithmes de tri par exemple et aussi dans certains algorithmes concernant les graphes que vous étudierez en deuxième année, dans les mélanges de cartes, dans l’étude du Rubik’s cube, et bien d’autres domaines encore...

Formule de S

TIRLING

Pour n « grand », on peut estimer que :

n!

+∞

∼ p 2πn ³ n

e

´

n Remarque

4 2 Nombre d’applications injectives - arrangements sans répétitions

Une source veut envoyer à chacun de ses cinq clients un fichier différent parmi les vingt-six situés dans un certain répertoire.

Combien de possibilités a la source pour envoyer un fichier à chacun des 26 clients ?

On peut modéliser cette situation : il s’agit de compter les applications injectives (pourquoi « injectives » ?) de l’ensemble E des clients vers l’ensemble F des fichiers. Il ne peut y avoir répétition donc il y a 26 choix de fichiers pour le premier client, 25 pour le deuxième, etc. ce qui donne 26 × 25 × 24 × 22 × 21 possibilités.

On peut généraliser.

Arrangement sans répétition

Une application injective d’un ensemble E de cardinal p dans un ensemble F de cardinal n (avec p 6 n) est appelée un arrangement sans répétition de p parmi n.

Définition 2 - 10

Un exemple fameux est la recherche de tiercés dans l’ordre (sans ex-æquo...) : pourquoi ? Nous pouvons formuler cette propriété plus synthétiquement. En effet

A

pn

= n (n − 1)(n − 2) ··· (n − p + 1) × (n − p )(n − p − 1)(n − p − 2) × ··· × 2 × 1 (n − p )(n − p − 1)(n − p − 2) × ··· × 2 × 1 = n !

(n − p)!

(20)

20 2.5. TRIANGLE DE PASCAL - BINÔME DE NEWTON

d’où

Nombre d’arrangements

Le nombre d’arrangements sans répétition de p parmi n est

A

pn

= n(n − 1)(n − 2) ··· (n − p + 1) = n!

(n − p)!

Théorème 2 - 8

Preuve ?

4 3 Combinaisons sans répétition

Il n’y a pas assez de gagnants au loto. Les règles en sont donc modifiées. Il s’agit maintenant de trouver 3 numéros parmi 5. Combien y a-t-il de grilles (combinaisons) possibles ?

Par exemple, on pourrait dire que j’ai cinq manières de choisir le premier numéro, quatre choix pour le deuxième et trois choix pour le troisième, donc il y a 5 × 4 × 3 grilles différentes mais dans ce cas, je compte des 3-listes ordonnées alors que les 3-listes (1,2,3) et (3,2,1) correspondent à la même grille ou combinaison

© 1,2,3 ª .

Posons une petite définition pour clarifier les débats. Donnons en fait un nom à une grille du loto, c’est à dire à un sous-ensemble (une partie) contenant p éléments d’un plus grand ensemble contenant n éléments.

Combinaison sans répétition

Soit n et p deux entiers naturels et E un ensemble contenant n éléments. Un sous-ensemble de E conte- nant p éléments est appelé une combinaison de p éléments de E ou encore une p -combinaison d’élé- ments de E.

Définition 2 - 11

Or ce qui nous intéresse, c’est le nombre de ces combinaisons, donc introduisons une notation : Nombre de combinaisons sans répétitions

Le nombre de p-combinaisons d’un ensemble E contenant n éléments est noté ¡

E

p

¢ ou encore C

|E|p

= C

pn Définition 2 - 12

Revenons à notre mini-loto. Considérons une grille quelconque (i.e. une 3-combinaison de l’ensemble des 5 numéros) : par exemple {2,4,5}. Nous avons vu dans un paragraphe précédent qu’il y a 3! facons d’ordonner ces nombres. Finalement, il y a C

53

× 3! suites de 3 nombres ordonnées : c’est le nombre d’arrangements de p parmi n. Or nous en avons comptées 5 ×4 × 3 tout à l’heure. Nous en déduisons finalement que

C

35

= A

35

3! = 5 × 4 × 3 3!

Il est alors possible de généraliser la formule suivante :

C

np

= A

pn

p! = n ¡

n −1 ¢¡

n −2 ¢

··· ¡

n −(p − 1) ¢

p! = n!

p !(n − p)!

Théorème 2 - 9

Preuve ?

Triangle de Pascal - Binôme de Newton

5

À l’aide des formules précédentes, on prouve facilement (faites-le !) le résultat suivant :

C

pn

= C

nnp Théorème 2 - 10

On établit ensuite, toujours par le calcul, la relation suivante, dite Relation de Pascal même si les mathéma- ticiens chinois l’avaient mise en évidence avant lui :

Relation de P

ASCAL

C

pn

= C

n−1p

+ C

n−1p1 Théorème 2 - 11

Il est possible de démontrer cette formule à l’aide d’un raisonnement ensembliste : pour former des groupes

de p éléments dans un ensemble en contenant n, on distingue un élément n

0

quelconque :

(21)

– soit le groupe le contient et alors il y a C

p−1n−1

choix des p − 1 éléments distincts de n

0

parmi les n − 1 restant ;

– soit le groupe ne le contient pas et il faut donc choisir p éléments parmi les n −1 éléments distincts de n

0

: il y a donc cette fois C

pn−1

.

Cette relation permet de démontrer la formule du binôme de Newton (que nous admettrons) : Formule du binôme

Soit A un anneau commutatif. Dans A[X], pour tout entier naturel non nul n : (1 +X)

n

= X

n

k=0

C

nk

X

k

et plus généralement :

∀(a, b) ∈ A

2

, (a +b)

n

= X

n

k=0

C

kn

a

k

b

n−k Théorème 2 - 12

(22)

22 2.6. EXERCICES

EXERCICES

6

Exercice 2 - 1 Pour Que vaut k à la fin ?

k←0

Pouri1De1Jusquen1Faire Pouri2De1Jusquen2Faire

...

PouripDe1JusquenpFaire k←k+1

FinPour FinPour FinPour Retournerk

k←0

Pouri1De1Jusquen1Faire k←k+1

FinPour

Pouri2De1Jusquen2Faire k←k+1

FinPour ...

PouripDe1JusquenpFaire k←k+1

FinPour Retournerk

k←0

Pouri1De1Jusquen1Faire k←k+1

Pouri2De1Jusquen2Faire k←k+1

...

PouripDe1JusquenpFaire k←k+1

FinPour FinPour FinPour Retournerk

k←0

PourxDe1Jusque100Faire PouryDe1JusquexFaire

PourzDe1JusqueyFaire PourtDe1JusquezFaire

k←k+1 FinPour FinPour FinPour FinPour Retournerk

Exercice 2 - 2 Chaînes

Combien y a-t-il d’octets commençant par 1 ou se terminant par 00 ? Combien y en a-t-il ne contenant pas deux 1 consécutifs ? Combien y en a-t-il qui contiennent la chaîne 000 ou la chaîne 111 ?

Exercice 2 - 3 Principe des tiroirs

Si on a n + 1 ou plus chaussettes à ranger dans n tiroirs, il y a au moins un tiroir qui en contient 2 ou plus.

Cette affirmation assez simple est aussi appelé Principe de D

IRICHLET

ou même pigeon hole principle par les anglo-saxons.

Démontrez le principe des tiroirs généralisé : si on a n chaussettes à ranger dans p tiroirs, alors il existe au moins un tiroir contenant au moins l

np

m chaussettes. Vous pourrez raisonner par l’absurde

Exercice 2 - 4 Téléphone

On suppose que les numéros de téléphone sont de la forme 0Z-YX-XX-XX-XX avec X un nombre entier entre 0 et 9, Y un nombre entier entre 2 et 9 et Z un entier entre 1 et 9.

En France, il y a environ 40 millions d’abonnements à un « fixe » et 69 millions à un « mobile » (données du quatrième trimestre 2011).

Est-on tranquille ?

Supposons qu’en Syldavie, il y ait 109 millions d’abonnés à un téléphone fixe et que le Y soit fixé par opérateur et qu’il n’y ait que deux opérateurs. De combien de zones a-t-on besoin ?

Exercice 2 - 5 Câbles

(23)

Il y a 1000 ordinateurs et 50 imprimantes. Combien faut-il au minimum de câbles pour que 50 ordinateurs pris au hasard puissent, à tout moment, accéder chacun à une imprimante différente ?

Exercice 2 - 6 Nombre d’applications

Combien y a-t-il d’applications d’un ensemble de cardinal n vers un ensemble de cardinal p ? Exercice 2 - 7 Barbie

Un étudiant de l’I

UT

d’informatique de Klow en Syldavie a reçu pour Noël sept Barbie et sept séries de dix robes de couleurs différentes. Il habille chaque Barbie d’une de ces robes.

1. Combien y a-t-il d’habillages possibles selon la couleur ?

2. Combien y a-t-il d’habillages de sorte que chaque Barbie ait une robe de couleur différente des autres ? 3. Combien y a-t-il d’habillages de sorte qu’au moins deux Barbie aient une robe de la même couleur ? 4. Combien y a-t-il d’habillages de sorte qu’exactement deux Barbie aient une robe de la même couleur ? Exercice 2 - 8 Jus

Lors de la soirée d’intégration de l’I

UT

de Klow, 9 étudiants ont bu un verre d’eau, 25 un verre de jus de tomate, 14 un verre de jus de betterave, 7 un verre de jus de tomate et un verre d’eau, 4 un verre d’eau et un verre de jus de betterave, 10 un verre de jus de betterave et un verre de jus de tomate. Les étudiants d’Info s’occupaient des boissons et ceux de GEA des entrées or ces derniers ont perdu leur liste et ne savant plus combien d’étudiants ont participé à la soirée. Les étudiants d’Info, connaissant les statistiques sur les consommations de boissons, pourront-ils corriger la gaffe des GEA sachant également que lors de la valse, tous les participants dansaient en couple ?

Exercice 2 - 9 k-uplets

Soit E un ensemble fini non vide de cardinal n.

a) Combien y-a-t-il de parties de E formées de k éléments ? b) Combien y-a-t-il de k-uplets d’éléments de E ?

c) Combien y-a-t-il de k-uplets d’éléments deux à deux distincts de E ?

d) Combien y-a-t-il de k -uplets d’éléments deux à deux distincts de E, tel que le premier élément est le plus petit et le dernier élément est le plus grand ?

e) Combien y-a-t-il de k-uplets d’éléments de E ordonnés dans l’ordre strictement croissant ? Exercice 2 - 10 Arrangements

Comment modéliser le tiercé brillamment organisé par le P

MU

? (Qui est E ? Qui est F ? Quelle est l’application de E dans F ?) Combien y a-t-il de tiercés possibles (sans ex-æquo) dans une course de 19 partants ?

Modélisez la recherche du nombre d’arrangements de p parmi n à l’aide d’un tirage de boules dans une urne.

Exercice 2 - 11 L’âge du capitaine

Le capitaine des pompiers de New-York est marié et a quatre enfants dont un mange un yaourt aux fruits tous les matins. Il ne fume pas, aime regarder des films de gladiateurs et réside à l’angle de la 1

ère

avenue et de la 33

ème

rue. La caserne se trouve à l’angle de la 9

ème

avenue et de la 40

ème

rue. Il s’y rend tous les jours à pied en sifflant « O du sch ö ner Westerwald » et sans perdre de temps (i.e. dans le sens des numéros croissants aussi bien pour les rues que pour les avenues). Sachant qu’il a commencé à travailler le jour de ses 18 ans, et sachant qu’il n’est jamais passé deux fois par le même chemin, qu’il boîte légèrement de la jambe droite après avoir participé au championnat d’Écosse de lancement d’enclume, qu’il est sourd de l’oreille gauche depuis qu’il a plongé dans un lac gelé pour sauver son petit frère John qui était en train de se noyer après que la glace sur laquelle il patinait craqua, quel est l’âge (maximum) du capitaine ?

Exercice 2 - 12 Stirling strikes back

Donnez un équivalent de C

n2n

quand n tend vers l’infini.

Exercice 2 - 13 Mélange de cartes

On dispose d’un jeu de 52 cartes et on le mélange en queue d’aronde : on divise le jeu en deux parties de

26 cartes et on intercale les cartes de la moitié gauche dans la moitié droite sans modifier l’ordre de chaque

(24)

24 2.6. EXERCICES

partie bien sûr. Est-ce que quatre mélanges en queue d’aronde successifs permettent de fournir un ordre aléatoire des cartes ?

Il faudrait préciser d’abord cette notion : combien y a-t-il d’ordres possibles des cartes ?

Existe-t-il alors des ordres qui ne pourront être obtenus par notre succession de mélanges ? i Pour répondre à cette question, il faudrait calculer le nombre d’ordres qu’on peut obtenir par la succession de quatre mé- langes...Imaginez que vous disposiez de 26 cartes bleues et 26 rouges. Vous les mélangez avec la méthode de la queue d’aronde : pouvez-vous reconstituer le jeu initial ? Combien y a-t-il alors d’ordres possibles après le premier mélange ?

Exercice 2 - 14 Poker

Une main au poker est constituée de 5 cartes tirées d’un jeu de 52 cartes. Combien y a-t-il de mains conte- nant des carrés (XXXXY) ? des fulls (XXXYY) ? des brelans (XXXYZ) ? des doubles paires (XXYYZ) ? des paires (XXYZA) ?

Deux lettres identiques (par exemple XX) correspondent à deux cartes de même hauteur (par exemple deux dames).

Exercice 2 - 15 Binôme

Soit E un ensemble de cardinal n . Si on remplace a et b par 1 dans la formule du binôme, quel résultat classique retrouve-t-on ?

Exercice 2 - 16 Bibosses

1. En utilisant la relation de P

ASCAL

, déterminez une fonction C

A

ML récursive de signature :

val binom1 : int * int -> int= <fun>

telle que binom1(n,p) calcule C

np

.

On pourra alors afficher le triangle de P

ASCAL

à l’aide de la fonction suivante :

let triangle1 n = for i = 0 to n do for j = 0 to i do

print_int (binom1(i,j));

print_string " "

done;

print_newline () done;;

2. Calculez C

1030

....mmmmmmm....c’est un peu long. Une autre idée est d’utiliser un tableau a priori rempli de 0. On va remplacer certaines cellules en place en utilisant encore la relation de P

ASCAL

.

Avec notre chameau, on utilise la fonction Array.make_matrix n m qui construit une matrice de taille n × m. On accède à l’élément situé sur la ligne i et la colonne j avec t.(i).(j) si on a nommé t la matrice.

On rappelle qu’on peut substituer la valeur initiale de la cellule t

i j

par la valeur v en place à l’aide de la commande :

t.(i).(j) <- v

On créera donc une fonction triangle2 n de signature :

val triangle2 : int -> int array array = <fun>

puis une fonction binom(n,p) :

let binom(n,p) = let b = triangle2 n in b.(n).(p);;

Calculez alors C

1030

avec cette nouvelle fonction....c’est mieux !

3. On voudrait donc comparer la complexité en temps de ces fonctions en prenant comme unité une

addition de coefficients binomiaux (on négligera les décrémentations d’indices). Faites-le !...

(25)

4. Une petite touche artistique à présent...Dans le triangle de P

ASCAL

, on va remplacer les coefficients pairs par une espace et les impairs par une étoile.

Créez une fonction triangle4 : int -> unit = <fun> à cet effet. Que donne triangle4 n avec n égal successivement à 31, 63, 127, 255 ?

Exercice 2 - 17 Formules binomiales On voudrait calculer X

n

k=0

³ C

kn

´

2

à l’aide du calcul d’un seul coefficient binomial (i.e. déterminer i et j tels que la somme précédente soit égale à C

ij

).

Plusieurs méthodes existent bien sûr.

Une consiste à avoir un raisonnement ensembliste similaire à celui utilisé pour prouver la relation de P

ASCAL

. Vous déterminerez d’abord le lien entre ¡

C

kn

¢

2

et C

nk

C

nnk

puis vous ferez le lien entre notre problème et la situation suivante : on a n filles et n garçons ; combien de groupes de n étudiants peut-on faire ?...

Une autre idée consiste à « penser polynôme » :

(1 + X)

n

(1 + X)

n

= (1 + X)

2n

Des idées ?...

Exercice 2 - 18 Suissesses multinomiales Combien existe-il d’anagrammes au mot « suissesses » ? On définit un nouveau type de coefficient :

Coefficient multinomial

Soit k

1

, k

2

,...,k

p

des entiers naturels tels que

p

X

i=1

k

i

= n. On note alors : C

nk1,k2,...,kp

= n!

k

1

!k

2

! ··· k

p

!

Définition 2 - 13

Quel est le coefficient multinomial égal à C

np

?

Comment interpréter ces coefficients en termes combinatoires ? Quel est le rapport avec les suissesses ?

Il existe un pendant multinomial à la formule du binôme : Formule du multinôme

(x

1

+ x

2

+ ··· + x

p

)

n

= X

k1+k2+···+kp=n

C

kn1,k2,...,kp

x

k11

x

2k2

··· x

kpp Théorème 2 - 13

Par exemple, quel est le coefficient de x

2

y

3

z

4

dans (x + y + z)

8

? Exercice 2 - 19 Somme d’entiers

Prouvez la formule : C

np+1+1

=

n−p

X

i=0

C

p+ip

Déduisez-en X

n

k=1

k , X

n

k=2

k(k − 1), X

n

k=1

k

2

, X

n

k=1

k

3

.

Exercice 2 - 20 Encore une formule binomiale On considère n boules numérotées de 1 à n.

1. Soit k un entier vérifiant p 6 k 6 n. On tire simultanément p boules de l’urne. Combien y a-t-il de tirages dont le plus grand numéro est k ?

2. En déduire une expression de P

n

k=p

C

kp−11

sous forme d’un unique coefficient binomial.

Exercice 2 - 21 Les boules

1. Démontrez que pour tous entiers naturels n et k tels que 2 6 k < n − 1, on a :

C

k−2n−2

+ 2C

k−1n−2

+ C

kn−2

= C

kn

.

(26)

26 2.6. EXERCICES

2. On considère deux entiers naturels n et k tels que 2 6 k < n − 1. On dispose d’une urne contenant n boules indiscernables au toucher. Deux des boules sont rouges, les autres sont blanches.

On tire au hasard et simultanément k boules de l’urne. On appelle A l’évènement « au moins une boule rouge a été tirée ».

Calculez de deux manières différentes le cardinal de A.

Exercice 2 - 22 Pesées

On dispose de 28 pièces de monnaie dont une est fausse et a une masse légèrement supérieure aux autres.

Nous disposons uniquement d’une balance de Roberval et des 28 pièces.

En combien de pesées peut-on déterminer la fausse pièce ? Exercice 2 - 23 Sommes et cardinaux

Soit E un ensemble fini de cardinal n. Déterminer les sommes suivantes en fonction de n :

a) P

A∈P(E)

Card A. b) P

(A,B)∈P(E)2

Card ¡ A∩ B ¢

. c) P

(A,B)∈P(E)2

Card ¡ A ∪ B ¢

. Exercice 2 - 24 Permutations

On peut être amené à rechercher les cycles d’une permutations. Il est aisé de les représenter à l’aide de graphes orientés...cycliques.

Par exemple, si l’on considère la permutation :

à 1 2 3 4 5 6 7 8 9

4 8 3 5 2 9 6 1 7

!

alors on trouve trois cycles :

1 4 5

2

8

6 7

9 3

1. Décomposez π = (2 1 3 5 4 7 9 6 8) en cycles.

2. La longueur d’un cycle est le nombre de ses sommets.

Soit p une permutation. On note p

k

= pp

k1

avec p

0

= id, la permutation identité.

Soit p ∈ S

n

. On définit une relation R sur E = {1,2,..., n} par : i R j ⇔ ∃ k ∈ N

?

, p

k

(i ) = j Est-ce que R est une relation d’équivalence ? Quels sont ses classes ?

3. L’ordre d’une permutation est le plus petit entier naturel strictement positif k tel que p

k

= id.

Déterminez l’ordre de π. Est-ce que toute permutation a un ordre fini ? Comment le calculer ? Exercice 2 - 25 Permutations de bosses

Voici une série de fonctions CAML : pourriez-vous les spécifier ?

Sachez que la fonction

int(n)

du module

Random

renvoie un entier aléatoire compris entre 0 et n − 1 compris, que

Array.maken 1

crée un tableau de longueur n rempli de 1.

let f1(n) =

let t = Array.make n 1 in for k = 0 to n-1 do

t.(k) <- k+1;

done;

t;;

let f2(t,a,b) = let c = t.(a) in t.(a) <- t.(b);

t.(b) <- c;

(27)

t;;

open Random;;

let hasard(a,b) = a + int(b-a+1);;

let f3(n) =

let t = ref (f1(n)) in for k = 0 to n-1 do

t := f2(!t,k,hasard(k,n-1));

done;

!t;;

Voici une autre série de fonctions à spécifier. Sachez que

Array.map f t

applique la fonction

f

aux éléments du tableau

t

, que

Array.to_list

transforme un tableau en liste.

let f4 p r = let c = ref [r] in let i = ref r in while p.(!i-1) <> r do

i := p.(!i-1);

c := !c @ [!i];

done;

!c;;

let f5 p =

let n = (Array.lengthp) in let l = ref (f4 p 1) in let lc = ref [| !l |] in let j = ref 1 in while !j < n do

while (List.mem (p.(!j-1)) !l) && (!j < n) do j := !j + 1;

done;

if not (List.mem !j !l) then

lc := Array.append !lc [| f4 p !j |];

l := (f4 p !j) @ !l;

j := !j + 1;

done;

!lc;;

let f6 p =

Array.map List.length (f5 p);;

let rec f7(a,b) = if a >= b then

if b = 0 then a

else

f7(b,a mod b) else

f7(b,a);;

let f8(a,b) = (a*b)/f7(a,b);;

let rec f9 = function

|[] -> 0

|tete::[] -> tete

|a::[b] -> f8(a,b)

|tete::queue -> f8(tete,f9 queue);;

let f10 p =

f9 (Array.to_list(f6 p));;

Exercice 2 - 26 Flavius Josèphe

(28)

28 2.6. EXERCICES

Flavius Josèphe (37 - 100) ou plutôt Yossef ben Matityahou HaCohen est un historien romain d’origine juive

et de langue grecque et qui ne devait pas être trop mauvais en mathématiques si on en croit la sinistre anec-

dote suivante. Lors de la première guerre judéo-romaine, Yossef fut piégé dans une grotte avec 39 autres de

ses compagnons en juillet 67. Ne voulant pas devenir esclaves, ils mirent au point un algorithme d’auto-

destruction : il s’agissait de se mettre en cercle et de se numéroter de 1 à 40. Chaque septième devait être

tué jusqu’à ce qu’il n’en reste plus qu’un qui devait alors se suicider. Ce dernier fut Yossef lui-même...et il ne

se suicida pas ! Après deux ans de prison, il fut libéré, il entra au service des romains comme interprète et

acquis la citoyenneté romaine deux ans plus tard. Quel numéro portait Yossef ? Créez un programme CAML

qui donne l’ordre des exécutions quelque soit le nombre de prisonniers et le chiffre sinistre.

Références

Documents relatifs

consommés chaque jour de manière équilibrée afin d’apporter à notre organisme les éléments indispensables à son bon fonctionnement.. Entourer les images et compléter

R´ esum´ e sur les Variables al´ eatoires, lois usuelles et th´ eor` emes de convergence.. Dans tout ce qui suit nous nous placerons dans l’espace probabilis´ e (Ω,

« maison » avec les aliments conseillés Mode de préparation : cuit à l’eau + matières grasses crues, en purée, à la vapeur, au bouillon, au four, au lait, grillé (avec les

Les effets indésirables pouvant survenir avec MAGNE B6 48 mg/5 mg, comprimé enrobé sont listés ci-dessous par classes de systèmes d’organes et par fréquence selon la

[r]

On sait que, dans une association qui compte 30 membres, chaque membre a 75% de chance d’être présent lors d’une assemblée générale.. Pour qu’une assemblée générale ait lieu,

Tout estimateur asymptotiquement sans biais dont la variance tend vers 0 (quand n augmente)

On suppose maintenant qu’un candidat connaît la réponse correcte à deux questions et qu’il répond au hasard aux trois autres