Probabilités
Les probabilités et VB
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
'
Différences Probabilités/Statistiques
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".
Vocabulaire
É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.
Simuler une épreuve Aléatoire
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.
Exemple 1
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
Exemple 2
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
Probabilités et Combinaisons
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)!)
Programme calculant factorielles et combinaisons
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