Tirages avec remise

 

Un problème classique est celui de la simulation de tirages de boules dans une urne avec remise de la boule tirée.

Par exemple, une urne contient 10 boules numérotées de 1 à 10. On effectue trois tirages successifs avec remise. On répète cette opération 1000 fois. On voudrait connaître la proportion de tirages parmi ces 1000 qui ont trois boules portant des numéros différents.

La répétition du protocole : tirage de trois boules avec remise sera prise en charge par l’instruction « POUR ».

Nous allons déplacer chacun des trois tirages dans un module auxiliaire.

Pour créer ce module auxiliaire, on utilise le menu Fichier Nouveau.

 

On donne le nom « tirage » à ce module.

 

On trouve alors dans le « navigateur » de LARP :

 

 

Le module auxiliaire s’ouvre un peu différemment du module principal :

 

 

 

Dans ce module auxiliaire, on va placer trois nombres aléatoires compris entre 1 et 10, obtenus par l’instruction ALEA(1,10), dans une liste que l’on appellera t. C’est cette liste que nous récupèrerons dans le module principal.

On peut utiliser simplement l’instruction :

 

 

On termine le module en ajoutant  à RETOURNER.

 

 

Attention : la variable t est locale. Elle n’existe que dans le module auxiliaire. Elle sera détruite quand on sortira de ce module.

Dans le programme principal, on prépare la boucle :

 

 

On effectue le tirage et on le range dans une variable u :

 

 

Testons en mode pas-à-pas cette première partie.

Quand on passe dans le module « tirage », on obtient comme affichage :

 

 

Puis quand on repasse dans le module principal :

 

 

Nous devons compter le nombre de groupe de trois tirages sans répétition, autrement dit le nombre de listes  dans lesquelles les trois valeurs sont différentes.

Il faut d’abord prévoir un test permettant de savoir si les trois valeurs sont différentes. Si l’on considère trois nombres  dire que ces nombres sont différents deux à deux c’est dire que les trois différences  sont non nulles et donc que le produit de ces différences n’est pas égal à 0.

Si ce produit est nul, on ajoutera une unité à une certaine variable s qui donnera ainsi le nombre de fois où l’on a rencontré trois valeurs différentes.

Mais il faut indiquer au logiciel qu’au départ du programme cette variable vaut 0.

 

 

Dans la boucle notre test est donc le suivant (avec une condition SI … ALORS).

 

 

On remarquera le « différent de 0 » écrit sous la forme <>.

On termine le programme par

 

On obtient un nombre autour de 0,72. Ce qui est exactement le résultat théorique.

 

 

RETOUR