Pour simuler une épreuve aléatoire on utilise la fonction Random qui génère un nombre pseudo aléatoire (il est en réalité basé sur un algorithme) compris entre 0 et 1.
Exemple :
' Randomize 'donne une nouvelle valeur pour rnd Label1.caption=10*rnd 'donne un nombre compris entre 0 et 10 '
Les statistiques s'intéressent à des faits passés alors que les probabilités s'intéressent à des situations qui ne se sont pas encore produites. Il existe pourtant un lien étroit entre ces deux disciplines a cause de la loi des grands nombres : "La probabilité d'apparition d'un résultat dans une épreuve aléatoire est pratiquement égale à la fréquence d'apparition de ce résultat quand on a répété un grand nombre de fois cette même épreuve".
Épreuve aléatoire : Situation dont les résultats dépendent du hasard,Issue : Un des cas possibles,
Univers : Ensemble des cas possibles,
Événement : Un ou plusieurs éléments appartenant à l'univers,
Loi de probabilité : Fonction qui a chaque issue associe une probabilité,
Variable aléatoire : Une grandeur numérique dont la valeur dépend de l'issue de l'épreuve.
Pour simuler une épreuve aléatoire nous ne disposons que de la fonction random, il faut donc associer a chaque issue un intervalle contenu dans le but de la fonction random.
Lancé de dé (voir la source http://www.vbfrance.com/codes/MATHEMATIQUES-PEDAGOGIQUES_36220.aspx puis chercher dans probabilités l'épreuve aléatoire suivante)
Public Function Dé(n As Long) As Long Randomize Dé = Fix(6 * Rnd + 1) 'donne une valeur entière comprise entre 1 et 6 End Function
Une urne contient 6 boules jaunes et 4 boules rouges, on en choisi une au hasard
Public Function Rouge() As Boolean Randomize 'donne une nouvelle valeur pour rnd If Rnd > 0.6 Then 'L'intervalle tien compte de la probabilité Rouge = True Else Rouge = False End If End Function
Private Sub Command1_Click() If Rouge() = True Then MsgBox "rouge" Else MsgBox "jaune" End If End Sub
Une épreuve aléatoire n'est pas toujours aussi simple, par exemple, une urne contient 10 boules numérotées, on tire simultanément 3 boules.
Pour déterminer la loi de probabilité, il faut connaitre le nombre de tirages possibles:
10 choix pour la première
9 choix pour la deuxième
8 choix pour la troisième
Soit 10*9*8=720 possibilités.
Cependant dans un tirage simultané, il y a des doubles
Exemple {5,9,7}={7,5,9}
Il y a 3*2*1=6 listes de ce type
Il reste donc 120 tirages possibles.
On dit qu'il y a 120 combinaisons de 3 boules parmi 10.
Généralisation : Le nombre de combinaisons de p éléments parmi n est (n!)/(p!(n-p)!)
voir http://www.vbfrance.com/codes/FACTORIELS-COMBINAISONS_32744.aspx
Function Combinaison(n As Long, k As Long) As Long 'Les deux premières étapes évitent des calculs évidents If k = 0 Or n = k Then Combinaison = 1 Exit Function End If If k = 1 Or k = n - 1 Then Combinaison = n Exit Function End If Combinaison = Factoriel(n) / (Factoriel(k) * Factoriel(n - k)) End Function
Function Factoriel(n As Long ) As Long Dim f As Long If n = 1 Then 'Par convention 0!=1 Factoriel = 1 Else Factoriel = n * Factoriel(n - 1) End If End Function