Mathém atiques
IUT INFO 1 / 2011-2012
Licence Creative Commons MAJ: 10 février 2013
Probabilités pour
l’informatique (I)
Guillaume C
ONNANT 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.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
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’informationqui 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
HANNONest 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évisibledu 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
esiè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
esiè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
ABINqui 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.
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 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
sqrtdé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+00signifie 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
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 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
ansreprend en effet le résultat de la commande précédente.
La commande
whopermet de rappeler quelles sont les variables affectées.
Pour supprimer une variable affectée, on utilise
clear:
--> clear a
La commande
clearutilisé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]
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
findqui 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 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, a ∗ b 6= b ∗ a 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)
--> 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
gceet
gdapour 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
aa. Cette fonction existe déjà sur Scilab (abs) mais il nous faut un exemple simple...
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 scialbou on appuie sur
Ctrl+
Lpour 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éeet 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
Solqui 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
endet 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
Un moyen qui peut parfois s’avérer encore plus efficace est d’utiliser
returnqui 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:25crée la liste des entiers de 1 à 25. L’emploi du mode silencieux après le
S=S+ipermet 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 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)))
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 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 - 2Si 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, {
EA 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.
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,nde 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 [
ni=1
A
i= E
Définition 2 - 7Par 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,ndes parties d’un ensemble E. Le produit Y
ni=1
A
i= A
1× A
2×·× A
nest 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
3sont donc les parties de E
2et ces
mêmes parties auxquelles on adjoint c.
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
nun 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 - 23 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,nde parties non vides d’un ensemble E réalise une partition de cet ensemble alors :
|E| = X
ni=1
|A
i|
Théorème 2 - 3Pour 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 - 4Pour 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,ndes parties d’un ensemble E.
¯
¯
¯
¯
¯ Y
n i=1A
i¯
¯
¯
¯
¯
= Y
n i=1| A
i|
Théorème 2 - 5En 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|
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
TIRLINGPour n « grand », on peut estimer que :
n!
+∞∼ p 2πn ³ n
e
´
n Remarque4 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 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é ¡
Ep
¢ ou encore C
|E|p= C
pn Définition 2 - 12Revenons à 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
353! = 5 × 4 × 3 3!
Il est alors possible de généraliser la formule suivante :
C
np= A
pnp! = 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
nn−p Théorème 2 - 10On é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
ASCALC
pn= C
n−1p+ C
n−1p−1 Théorème 2 - 11Il 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
0quelconque :
– soit le groupe le contient et alors il y a C
p−1n−1choix des p − 1 éléments distincts de n
0parmi 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
nk=0
C
nkX
ket plus généralement :
∀(a, b) ∈ A
2, (a +b)
n= X
nk=0
C
kna
kb
n−k Théorème 2 - 1222 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
IRICHLETou 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
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
UTd’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
UTde 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
èreavenue et de la 33
èmerue. La caserne se trouve à l’angle de la 9
èmeavenue et de la 40
èmerue. 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
n2nquand 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 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
AML 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 jpar 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
1030avec 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 !...
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
nk=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¢
2et C
nkC
nn−kpuis 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)
2nDes 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
pdes 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 - 13Quel 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,...,kpx
k11x
2k2··· x
kpp Théorème 2 - 13Par exemple, quel est le coefficient de x
2y
3z
4dans (x + y + z)
8? Exercice 2 - 19 Somme d’entiers
Prouvez la formule : C
np+1+1=
n−p
X
i=0
C
p+ipDéduisez-en X
nk=1
k , X
nk=2
k(k − 1), X
nk=1
k
2, X
nk=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
nk=p
C
kp−1−1sous 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 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= p ◦ p
k−1avec 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
Randomrenvoie un entier aléatoire compris entre 0 et n − 1 compris, que
Array.maken 1cré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;
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 tapplique la fonction
faux éléments du tableau
t, que
Array.to_listtransforme 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));;