Simulation du lancer de deux DES en VBA
Télécharger l'activité au format pdf
Nous allons utiliser le tableur Excel pour simuler un lancé de dés, en effet ce tableur dispose du langage VBA. A partir d'un dé rouge et d'un dé bleu nous nous intéressons à la somme des deux dés. Nous retrouvons toutes les sommes possibles dans un tableau de 36 cases (6 x 6). Il s'agit là d'un exercice de probabilité tout à fait classique pour introduire par exemple la notion d'écart type.
Remarquons que le lancer des deux dés offre 36 combinaisons. La somme 7 apparaît 6 fois, nous disons que la probabilité d'obtenir 7 en lançant les deux dés est de 1/6 ( = 6/36 ). On a très envie de faire un essai avec deux dés sur une centaine de lancers par exemple pour voir si statistiquement le 7 sort bien 1 fois sur 6 en moyenne ! Nous n'avons pas de dés mais nous allons simuler ce lancer avec Excel. En effet, comme la plupart des tableurs, Excel possède une fonction qui génère des nombres aléatoires. Cette fonction est la fonction ALEA( ); Elle génère un nombre aléatoire compris entre zéro et 0.99999999 (zéro compris) comme par exemple 0.126897. Il suffit donc de multiplier ce nombre par 6, de lui ajouter 1 et d'enlever la partie décimale pour obtenir un nombre entier aléatoire entre 1 et 6.
La fonction qui prend la partie entière d'un nombre est la fonction ENT; Nous allons donc utiliser la formule suivante : =ENT(ALEA( )*6+1) pour générer notre simulation de jet de dés.
1- Ouvrir Excel
2- Dans la cellule B2 taper "Dé ROUGE", dans la cellule B3 taper "Dé BLEU" et dans la cellule B5 taper "SOMME".
3- Dans la cellule C2 taper la formule =ENT(ALEA( )*6+1) et appuyez sur ENTREE; Recopier alors cette formule dans la cellule C3. En C5 taper la formule =C2+C3 et appuyez sur ENTREE.
4- Demander l'affichage de la barre d'outils Commandes ( ou contrôle suivant la version d’excel !). Sur cette barre sélectionner le Bouton de commande et tirer un petit rectangle sur la feuille pour construire le bouton. Ce bouton se nomme par défaut CommandButton1. Pour le renommer cliquer dessus avec le bouton droit et demander Objet Bouton de commande > Edition. Renommer alors le bouton LANCER (comme ci-dessus). Ce bouton va nous permettre de recalculer toute la feuille par un simple clic de façon à simuler un tirage.
Pour ce faire il suffit de rajouter une instruction dans le script du bouton pour demander le recalcul de la feuille active nommée automatiquement par Excel : Feuil1.
5- Dérouler le menu contextuel du bouton LANCER en cliquant dessus avec le bouton droit de la souris.
Demander alors : visualiser le code (si le bouton droit n'a pas d'effet il faut se remettre en mode création en cliquant sur l'icône équerre ).
Rajouter l'instruction Feuil1.Calculate dans le script du bouton LANCER.
On obtient la méthode ci-dessous :
Private Sub CommandButton1_Click()
Feuil1.Calculate
End Sub
Refermer alors l'éditeur Visual Basic pour revenir à la feuille de calcul.
6- Feuil1 représente la feuille de calcul toute entière. Elle sera recalculée à chaque clic sur le bouton LANCER (il ne faut pas rester en mode création, si c'est le cas il faut désactiver le mode création en cliquant sur l'icône équerre).
Nous avons bien créé un simulateur du lancer de deux dés. On peut alors faire des essais et noter la somme à chaque clic sur le bouton.
On pourra ainsi vérifier si le 7 apparaît bien une fois sur six (sur un grand nombre de lancers bien entendu !).
7- Fabriquer un nouveau bouton. Nommez ce bouton 100 fois. Il va nous permettre de lancer 100 fois les deux dés. Il faut que le script de ce bouton permette de compter le nombre de fois où est sortie la somme 7 pour l'afficher dans une cellule. Voici le script du bouton 100 fois :
Script a taper
Private Sub CommandButton2_Click()
Compt = 0
For n = 1 To 100
Feuil1.Calculate
If Feuil1.Cells(5, 3) = 7 Then compt = compt + 1
Next n
Feuil1.Cells(11, 4) = compt
End Sub
Remarque : la cellule (11; 4) de Excel correspond à la cellule (D, 11)
Exercices
1. Fabriquer un nouveau bouton (sous le précédent) qui permette de lancer 1000 fois les deux dés. Ce bouton doit afficher, dans la cellule D14, le nombre de fois ou la somme 7 est apparue. On appellera ce bouton « 7 / 1000 »
2. Fabriquer un nouveau bouton (sous le précédent) qui permette de lancer 1000 fois les deux dés. Ce bouton doit afficher, dans la cellule D17, le nombre de fois ou la somme 5 est apparue. On appellera ce bouton « 5 / 1000 »
3. Fabriquer un bouton (sous les autres) qui permette de lancer 1000 fois les deux dés. Ce bouton comptera combien de fois la somme inscrite dans la cellule B20 est apparue. On appellera ce bouton « x / 1000 ». Le résultat sera affiché en cellule D20.
4. Fabriquer sur la Feuil2 un petit programme bien présenté qui demande à l’utilisateur sur combien de lancers il veut travailler …. Avec quelle somme il veut travailler (on vérifiera qu’elle est bien comprise entre 2 et 12) et qui affichera le nombre d’apparitions de cette somme (on peut imaginer de l’afficher plusieurs fois de suite…)