• Aucun résultat trouvé

2 TP Des maux de têtes avec des mots de deux lettres

N/A
N/A
Protected

Academic year: 2022

Partager "2 TP Des maux de têtes avec des mots de deux lettres"

Copied!
9
0
0

Texte intégral

(1)

2 TP – Des maux de têtes avec des mots de deux lettres

Dans ce TP, on utilise la fonction Python 𝑐ℎ𝑜𝑖𝑐𝑒 disponible dans le module 𝑟𝑎𝑛𝑑𝑜𝑚 (qui contient une bibliothèque de fonctions Python déjà écrites pour faire des simulations) dont 𝑟𝑎𝑛𝑑𝑖𝑛𝑡 et 𝑐ℎ𝑜𝑖𝑐𝑒.

Exemples : 𝑐ℎ𝑜𝑖𝑐𝑒(["toto", "titi", "tata"]) simule un tirage parmi « titi », « toto », « tata » avec la même probabilité 𝑟𝑎𝑛𝑑𝑖𝑛𝑡(1, 4) simule un lancer de dé tétraédrique dont les quatre faces sont: « 1 », « 2 », « 3 », « 4 » Tirages avec remise

Dans un sac, on dépose six jetons de Scrabble marqués respectivement : « a », « a », « a », « b », « b », « c ».

On tire au hasard et avec remise deux lettres. On obtient ainsi un mot de deux lettres.

1. Faire la liste des mots possibles.

2. Construire un arbre décrivant l’univers de cette expérience aléatoire. Modéliser par une loi de probabilité.

3. Soit 𝐴: « on a tiré au moins une lettre 𝑎 ». Calculer 𝑃(𝐴)

4. Compléter la fonction Python nommée 𝑎𝑣𝑒𝑐_𝑟𝑒𝑚𝑖𝑠𝑒. Elle simule 𝑛 fois l’expérience aléatoire puis renvoie la fréquence des mots ayant au moins une lettre « 𝑎 ».

from … import * def avec_remise(…):

for k in range(0, …):

lettre1 = choice(["a", "a", "a", "b", "b", "c"]) lettre2 = choice(["a", "a", "a", "b", "b", "c"]) if lettre1 == "a" … lettre2 == "a" :

compte = … return(… / n)

print( avec_remise(1000) )

Tirages sans remise

Dans un sac, on dépose six lettres de Scrabble : « a », « a », « a », « b », « b », « c ».

On tire au hasard et sans remise deux lettres. Après chaque tirage, on note la lettre obtenue.

1. Construire un arbre décrivant l’univers de cette expérience aléatoire. Modéliser par une loi de probabilité.

2. Soit 𝐴 : « on a tiré au moins une lettre 𝑎 ». Calculer 𝑃(𝐴)

3. Ecrire une fonction Python, nommée 𝑠𝑎𝑛𝑠_𝑟𝑒𝑚𝑖𝑠𝑒, qui simule 𝑛 fois l’expérience aléatoire puis renvoie la fréquence des mots ayant au moins fois la lettre « a ».

Temps d’attente avec remise

Dans un sac, on dépose six lettres de Scrabble : « a », « a », « a », « b », « b », « c ».

On tire au hasard une lettre :

 Si on obtient le « c », le jeu s’arrête

 Si on obtient un « a » ou un « b », on remet la lettre puis on recommence le tirage. Et ainsi de suite jusqu’à obtenir le « c ».

On note le nombre de tirages effectués jusqu’à obtenir le « c ».

1. Ecrire une fonction Python, nommée 𝑎𝑡𝑡𝑒𝑛𝑡𝑒, qui simule une seule expérience aléatoire et renvoie le nombre de tirages effectués pour obtenir le «c ».

2. Ecrire, en appelant la fonction attente_moyenne, une fonction Python qui affiche le nombre moyen de tirages pour obtenir le « c » dans un échantillon de taille 𝑛.

Temps d’attente sans remise

Dans un sac, on dépose quatre lettres de Scrabble : « a », « a », « b », « c ».

On tire au hasard une lettre :

 Si on obtient le « c », le jeu s’arrête

 Si on obtient un « a » ou un « b », on recommence le tirage sans remettre la lettre. Et ainsi de suite jusqu’à obtenir le « c ».

On note le nombre de tirages effectués jusqu’à obtenir le «c ».

Construire un arbre décrivant l’univers de cette expérience aléatoire. Modéliser par une loi de probabilité.

(2)

Pour se corriger

Tirages avec remise

Question 1

Une première réponse correcte : celle d’Ursule

« Pour distinguer les trois jetons marqués « a » et les deux marqués « b », j’écris au feutre un numéro à côté de chaque lettre. Les jetons sont maintenant marqués : 𝑎1, 𝑎2, 𝑎3, 𝑏1, 𝑏2, 𝑐.

Cela ne chance rien au résultat du tirage au hasard. »

Mot obtenu

𝒂𝒂 𝒂𝒂 𝒂𝒂 𝒂𝒃 𝒂𝒃 𝒂𝒄 𝒂𝒂 𝒂𝒂 𝒂𝒂 𝒂𝒃 𝒂𝒃 𝒂𝒄 𝒂𝒂 𝒂𝒂 𝒂𝒂 𝒂𝒃 𝒂𝒃 𝒂𝒄 𝒃𝒂 𝒃𝒂 𝒃𝒂 𝒃𝒃 𝒃𝒃 𝒃𝒄 𝒃𝒂 𝒃𝒂 𝒃𝒂 𝒃𝒃 𝒃𝒃 𝒃𝒃 𝒄𝒂 𝒄𝒂 𝒄𝒂 𝑐𝑏 𝑐𝑏 𝑐𝑐 Chacun des 36 chemins ont la même probabilité 361.

Mots aa ab ac ba bb bc ca cb cc

Probabilité 9 36=1

4 6 36=1

6 3 36= 3

12 6 36= 1

12 4 36=1

9 2 36= 1

18 3 36= 1

12 2 36= 1

12

1 36

(3)

Une deuxième réponse correcte : celle de Totor

« J’utilise un arbre de dénombrement. Sur chaque branche, je porte le nombre de jetons différents donnant la lettre marquée sur le nœud d’arrivée. »

Mot obtenu

Dénombrement des possibilités 𝑎𝑎

𝑎𝑏

𝑎𝑐 𝑏𝑎 𝒃𝒃 𝒃𝒄 𝑐𝑎 𝒄𝒃 𝒄𝒄 Total

3 × 3 = 9 3 × 2 = 6 3 × 1 = 3 2 × 3 = 6 2 × 2 = 4 2 × 1 = 2 1 × 3 = 3 1 × 2 = 2 1 × 1 = 1 9 + 6 + ⋯ + 1 = 36

Remarque : quand les conditions du tirage restent identiques, on ne prendra pas la précaution de bien les identifier. Voici ce qu’on écrira :

Loi de probabilité

Comme les jetons faces cachées (attention ce n’est le cas ni des lettres, ni des mots) sont indiscernables, on choisit d’attribuer à chaque chemin (de la racine à une feuille) la même probabilité 361.

Mots aa ab ac ba bb bc ca cb cc

Probabilité 9 36=1

4 6 36=1

6 3 36= 3

12 6 36= 1

12 4 36=1

9 2 36= 1

18 3 36= 1

12 2 36= 1

12

1 36

3 « a » 2 « b » 1 « c »

3 « a » 2 « b » 1 « c »

3 « a » 2 « b » 1 « c »

3 « a » 2 « b » 1 « c »

(4)

Une troisième réponse : celle d’Iconoclaste

« J’utilise un arbre de probabilités. Sur chaque branche, je porte la probabilité, lors du tirage concerné (première ou deuxième lettre), d’obtenir la lettre marquée sur le nœud d’arrivée. »

Mot obtenu Probabilités 𝑎𝑎

𝑎𝑏

𝑎𝑐

𝑏𝑎

𝒃𝒃

𝒃𝒄

𝑐𝑎

𝒄𝒃

𝒄𝒄

3 36× 3

36= 9

36= 0,25 3

36× 2 36= 6

36≈ 0,167 3

6×1 6= 3

36≈ 0,083 2

6×3 6= 6

36≈ 0,167 2

6×2 6= 4

36≈ 0,111 2

6×1 6= 2

36≈ 0,056 1

6×3 6= 3

36≈ 0,083 1

6×2 6= 2

36≈ 0,056

1

6×16=361 ≈ 0,028

La loi de probabilité est encadrée ci-dessus.

Question 2 𝐴 = {𝑎𝑎 ; 𝑎𝑏 ; 𝑎𝑐 ; 𝑏𝑎 ; 𝑐𝑎 }

La probabilité d’un événement est la somme des probabilités des issues qui le réalisent.

𝑃(𝐴) =369 +366 +363 +366 +363 =2736=34= 0,75

Question 3

from random import *

def avec_remise(n):

compte = 0

for k in range(0, n):

lettre1 = choice(["a", "a", "a", "b", "b", "c"]) lettre2 = choice(["a", "a", "a", "b", "b", "c"]) if lettre1 == "a" or lettre2 == "a" :

compte = compte + 1 return compte/n

print( avec_remise(1000) )

On doit importer le module random pour utiliser la fonction choice

compte contient le nombre de 𝑎 obtenu. Cette variable doit être initialisée Le nombre de simulations n’est connu qu’à l’appel de la fonction

𝑘 prendra les valeurs 0, 1, 2, 3, …, 𝑛 − 1. On a bien 𝑛 simulations

En Python, le « ou inclusif » se note « or » Chaque fois que l’on obtient « a », on ajoute 1 au compteur La fréquence de la lettre a parmi toutes les simulations est 𝑐𝑜𝑚𝑝𝑡𝑒

𝑛

3 « a » 2 « b » 1 « c »

3 « a » 2 « b » 1 « c » 3 « a » 2 « b » 1 « c » 3 « a » 2 « b » 1 « c »

(5)

Tirages sans remise

Question 1

Une première réponse correcte : celle de Totor

« J’utilise un arbre de dénombrement. Sur chaque branche, je porte le nombre de jetons différents donnant la lettre marquée sur le nœud d’arrivée. »

Mots 𝑎𝑎 𝑎𝑏 𝑎𝑐 𝑏𝑎 𝑏𝑏 𝑏𝑐 𝑐𝑎 𝑐𝑏

Nombre de chemins 3 × 2 = 6 3 × 2 = 6 3 × 1 = 3 2 × 3 = 6 2 × 1 = 2 2 × 1 = 2 1 × 3 = 3

1 × 2 = 2 Total : 30

Probabilités 6

30=1 5 6 30=1

5 3 30= 1

10 6 30=1

5 2 30= 1

15 2 30= 1

15 3 30= 1

10 2 30= 1

15

Une seconde réponse correcte : celle d’Iconoclaste

« J’utilise un arbre de probabilité. Sur chaque branche, je porte le nombre de jetons différents donnant la lettre marquée sur le nœud d’arrivée. »

Mots 𝒂𝒂

𝒂𝒃

𝒂𝒄

𝒃𝒂

𝑏𝑏

𝑏𝑐

𝒄𝒂

𝑐𝑏

Probabilités

3

6×25=306

3 6×2

5= 6

30

3 6×1

5= 3

30

2 6×3

5= 6

30

2 6×1

5= 2

30

2 6×1

5= 2

30

1 6×3

5= 3

30

1

6×25=302

3 « a » 2 « b » 1 « c »

2 « a » 2 « b » 1 « c »

3 « a » 1 « b » 1 « c »

3 « a » 2 « b » 3 « a »

2 « b » 1 « c »

2 « a » 2 « b » 1 « c »

3 « a » 1 « b » 1 « c »

3 « a » 2 « b »

(6)

from random import *

def attente_sans_remise():

compte = 0

while ["a", "a", "b", "c"] != "c" : compte = compte + 1

return compte Question 2 𝐴 = {𝑎𝑎 ; 𝑎𝑏 ; 𝑎𝑐 ; 𝑏𝑎 ; 𝑐𝑎 }

La probabilité d’un événement est la somme des probabilités des issues qui le réalisent.

𝑃(𝐴) =306 +306 +303 +306 +303 =2430= 0,8

Question 3

from random import * def sans_remise(n):

compte = 0

for k in range(0, n):

lettre1 = choice(["a", "a", "a", "b", "b", "c"]) if lettre1 == "a":

lettre2 = choice(["a", "a", "b", "b", "c"]) if lettre1 == "b":

lettre2 = choice(["a", "a", "a", "b", "c"]) if lettre1 == "c":

lettre2 = choice(["a", "a", "a", "b", "b"]) if lettre1 == "a" or lettre2 == "a" :

compte = compte + 1 return compte / n

print( sans_remise(1000) )

Ci-dessous une autre version plus concise.

Temps d’attente avec remise

Question 1

from random import *

def attente():

# On effectue le premier tirage

lettre = choice(["a", "a", "a", "b", "b", "c"]) compte = 1

while lettre != "c" :

# tant que la lettre n'est pas "c", on retire lettre = choice(["a", "a", "a", "b", "b", "c"]) compte = compte + 1

# On renvoie le nombre de tirages faits pour obtenir "c"

return compte

(7)

Une version plus concise def attente():

compte = 1

while choice(["a", "a", "a", "b", "b", "c"]) != "c" : compte = compte + 1

return compte

Question 2 A la suite du code précédent, on tape : def attente_moyenne(n):

total = 0

for k in range(0, n):

total = total + attente() print(total / n)

# Pour lancer appeler la fonction sur un échantillon de taille 1000 attente_moyenne(1000)

Temps d’attente sans remise

Solution correcte de Totor

« J’utilise un arbre de dénombrement pour dresser la liste de tous les tirages sans remise possibles jusqu’à ce qu’il n’y ait plus de lettre disponible. Sur chaque branche, je porte le nombre de jetons restants (il n’y a pas de remise) donnant la lettre marquée sur le nœud d’arrivée.

Après je relève le nombre de tirages nécessaires pour obtenir le « c ». Cela revient à tronquer.»

Nombre de tirages

4 3 4 3 1 1 4 3 1 1 1 1

Possibilités

2 2 2 2 2 2 2 2 2 2 2 2 Total : 24

(8)

Loi de probabilité

Les chemins complets (non tronqués) ont la même probabilité puisque choisir un chemin complet au hasard revient à tirer un mot de quatre lettre parmi les 24 possibles.

Toutes les possibilités ont les mêmes chances de se produire : 241

Nombre de tirages 1 2 3 4

Probabilités 6

24= 0,25 6

24= 0,25 6

24= 0,25 6

24= 0,25

Solution correcte d’Iconoclaste

« J’utilise un arbre de probabilité. Sur chaque branche, je porte le nombre de jetons différents donnant la lettre marquée sur le nœud d’arrivée. »

Nombre de tirages

4

3

4

3

2

4

3

2

1

Probabilités

2 4×1

3×1

2× 1 = 2 24

2 4×1

3×1 2= 2

24

2 4×1

3×1

2× 1 = 2 24

2 4×1

3×1 2= 2

24

2 4×1

3= 2 12= 4

24

1 4×2

3×1

2× 1 = 2 24

1 4×2

3×1 2= 2

24

1 4×1

3= 1 12= 2

24

1 4= 6

24

Loi de probabilité

Nombre de tirages 1 2 3 4

Probabilités 6

24= 0,25 2 24+ 4

24= 6

24= 0,25 2 24+ 2

24+ 2

24= 0,25 2 24+ 2

24+ 2

24= 0,25

2 « a » 1 « b » 1 « c »

1 « a » 1 « b » 1 « c »

2 « a » 1 « c »

1 « a » 1 « c »

1 « c » 1 « c »

1 « c »

1 « a » 1 « c »

1 « b » 1 « c »

(9)

Compléments (piste noire)

Un graphe possible pour représenter les tirages sans remise parmi « a », « a », « b », « c » jusqu’à obtenir « c »

Voici un graphe possible pour décrire la situation : ce n’est pas un arbre !

Il permet de calculer la probabilité d’obtenir le « c » au 9ième tirage : 34× (3

4)7×1

4

On parcourt : 1 fois la flèche droite marquée 3

4

7 fois la boucle marquée 3

4

1 fois la flèche droite marquée 14

Références

Documents relatifs

poux poule loup coup loup poulpe poule chou clou poulet soupe coupe loup poupe loupe coup loupe poule loupe couple. coup pouce houppe coup loup goule loupe

[r]

(2) ´ Ecrire une fonction traitement qui prend pour arguments une image et une fonction puis applique cette fonction sur la valeur de chacun des pixels de l’image.. (3) Red´

[r]

Compétence : Ecrire des mots connus en lettres bâtons, avec

A chaque étape le joueur propose un nombre, l'ordinateur annonce si ce nombre est plus grand ou plus petit que l'original. Si le joueur trouve le nombre, l'ordinateur indique

1) Lancer l’éditeur MU. 2) Reprendre les scripts suivants.. 3) En déduire le rôle de la structure for.

Cette méthode consiste à calculer la somme des carrés des écarts entre les points du nuage et les points d’une droite estimée et à choisir comme meilleure droite celle pour