Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#26 26-04-2020 05:49:12
- elmaths
- Membre
- Inscription : 03-12-2019
- Messages : 25
Re : Probabilité difficile (Bac 2019 Maroc)
Voila la preuve. On sait que : $C_n^3=\dfrac{n!}{3!(n-3)!}$, alors :
$$P(B)=\frac{{C_n^3 \times \left( {n - 3} \right)!}}{{n!}} = \frac{{{{n!}}}}{{3!{{\left( {n - 3} \right)!}}}} \times \frac{{{{\left( {n - 3} \right)!}}}}{{{{n!}}}} = \frac{1}{{3!}} = \frac{1}{{1 \times 2 \times 3}} = \frac{1}{6}$$
Hors ligne
#27 26-04-2020 06:43:25
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Salut,
je m'en fous, du calcul, je veux le raisonnement. Tu balances des formules sans un mot d'explication, perso, ça ne me va pas. Une solution se rédige, ce n'est pas un enchainement abscons de formules et de chiffres !
Maintenant, faut regarder la loi de $X_n$.
Hors ligne
#28 26-04-2020 11:39:16
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Ave freddy,
Ca ne t'étonnera pas : j'ai Pythonné...
J'ai créé un tableau avec les nombres de 1 à 100 que j'ai mélangé aléatoirement pour faire bonne mesure...
Ensuite, j'en ai extrait sans remise chaque fois 3 nombres de ce tableau et ce 10 000 000 fois consécutivement...
J'ai stocké ces triplets dans un 2e tableau.
Ensuite j'ai compté combien de fois le triplet (1,2,3) était présent dans ce 2e tableau.
J'ai recommencé plusieurs fois.
Le compteur m'a donné successivement :
6, 8, 8, 7, 9, 10, 5, 10, 8 bien inférieur à la réponse 1 de notre ami qui est, pour n=100, 1/9900Après, j'ai testé la question 2 dans les mêmes conditions le nombre de présences des 3 nombres 1, 2, 3 dans mes 10000000 de triplets.
Résultats :
71, 63, 56, 61, 59, 58, 68 grosso modo dans un facteur 6 par rapport aux précédents.
Justement, avec 1, 2 et 3 je peux former 6 triplets...Réactions ?
@+
Salut l'ami,
je viens de comprendre ce que tu as fait et trouvé ton erreur.
En fait, ta procédure est correcte sauf que tu ne dois pas t'arrêter après trois tirages. Tu pousses et tu t'arrêtes quand les trois chiffres 1, 2 et 3 sont sortis, peu importe l'ordre.
Ensuite, tu fais le compte des séquences 123.
Pour la seconde question, tu fais pareil mais tu comptes quand tu as eu 1 avant 2 avant 3.
Dans les deux cas, tu devrais trouver les résultats annoncés.
Après, si tu peux, tu pousses encore un peu pour travailler sur la troisième question. Les premières simulations devraient pouvoir être exploitées sans avoir à les refaire.
Ou alors, tu me donnes un bout de code pour que le prolonge, j'aimerais bien vérifier mes calculs. Merci d'avance et confine toi bien, nous sommes un peu vulnérables !
Hors ligne
#29 26-04-2020 14:42:12
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
Dernière mouture bien plus simple du script.
Question 1
Tiercé 1 2 3 dans l'ordre
Pour 10 000 000 essais pas mieux que 18 succès :
import numpy as np
U=np.arange(1,101)
np.random.shuffle(U)
compteur =0
for essai in range(10000000):
a,b,c=np.random.choice(U,size=3, replace=False)
if (a,b,c)==(1, 2, 3):
compteur+=1
print (compteur)
1ere ligne importe le module scientifique numpy avec l'alias np
2e ligne : je construis un tableau U avec dans l'ordre les nombres de 1 à 100
3e ligne : je brasse (schuffle) ce tableau de façon aléatoire. Ce brassage a-t-il un intérêt pour la simulation ?
Un exemple après brassage :
[ 64, 84, 72, 2, 32, 5, 77, 11, 70, 39, 29, 56, 1,
48, 65, 68, 75, 43, 73, 19, 10, 93, 47, 66, 24, 74,
49, 30, 99, 57, 40, 41, 34, 9, 81, 7, 91, 76, 12,
96, 6, 94, 23, 25, 67, 69, 35, 18, 82, 55, 92, 37,
98, 80, 17, 16, 97, 21, 42, 33, 61, 31, 88, 79, 3,
44, 20, 95, 58, 4, 86, 59, 50, 27, 22, 87, 26, 85,
46, 62, 54, 100, 89, 51, 13, 60, 28, 52, 36, 53, 83,
38, 14, 63, 71, 78, 45, 8, 15, 90]
4e ligne j'initialise mon compteur à 0...
5e ligne je démarre 10 000 000 de tirages
6e ligne :
a,b,c=np.random.choice(U,size=3, replace=False)
Traduction :
avec le module aléatoire (random) de numpy (np) choix (choice) dans le tableau U, de 3 nombres (size = 3) sans remise (replace = False)
et range ces 3 nombres dans le triplet a,b,c
7e ligne si le triplet (a,b,c) est égal au triplet (1,2,3)
8e ligne alors j'ajoute 1 au compteur
9e ligne quand les 10000000 de tirages ont été effectués, j'affiche la valeur du compteur...
Et je m'avise d'un seul coup que tu veux peut-être tester les bouts de code sur Python (tu l'as ?).
Su tu l'as, il y a assez peu de chance que tu aies numpy d'installé...
Pourquoi utiliser numpy ? Ce module scientifique est réputé avoir une meilleure gestion de l'aléatoire que Python pur...
Donc le même code (testé) en Python pur...
Mais résultats Python pur grosso modo moitié résultats numpy alors j'ai ajouté seed =time() pour que le choix de la "graine" change avec le temps.
from random import *
from time import time
U=[i for i in range(1,101)]
shuffle(U)
compteur =0
for essai in range(10000000):
seed=time()
a,b,c=sample(U,3)
if (a,b,c)==(1,2,3):
compteur+=1
print (compteur)
Question 2 je compte le nombre de sorties de 1, 2 et 3 dans n'importe quel ordre.
si la question 2 (et je vais aller relire les questions avec la plus grande attention) est : sachant que j'ai tiré les boules 1, 2 et 3 quelle est la probabilité que ce soit le 1 2 3 dans cet ordre ? alors d'accord 1/6. Si c'est 1, 2, 3 quel que soit l'ordre, cela me paraît totalement impossible que la probabilité d'obtenir ces 3 boules soit 1/6 qu'il y ait 100, 1000, 10000 boules...
je viens de relire la question 2
Calculer la probabilité que les boules 1, 2 et 3 sortent dans cet ordre (consécutivement ou pas) ?
Je l'avais mal lue...
Mais, pour avoir les 3 boules 1 2 3 dans cet ordre non consécutivement, il faut tirer plus de 3 boules...
C'est sûr que si je tire toutes les boules s'il le faut, le 1, le 2 et le 3 seront sortis peu importe leur ordre...
@+
Hors ligne
#30 26-04-2020 18:31:05
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
tu ne pourras pas faire mieux car ta règle de tirage ne répond pas à la question.
Je te propose :
- tu remplis un tableau de 10.000.000 de lignes
- chaque ligne contient 100 nombres tirés au hasard et sans remise parmi n = 100
- puis tu comptes le nombre de lignes qui ont la séquence 123.
Tu devrais trouver un nombre voisin de 1.010.
Ce que tu fais est différent : tu cherches à connaître la probabilité d'obtenir, du premier coup, 123. Ce n'est pas l'expérience aléatoire du sujet.
PS : non, le brassage ne fait rien :-)
Dernière modification par freddy (26-04-2020 18:34:10)
Hors ligne
#31 26-04-2020 18:41:39
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
je reprends le code, mais ne suis pas encore capable de faire ce qu'il faut.
import numpy as np
U=np.arange(1,101) pas utile
np.random.shuffle(U)
compteur =0
for essai in range(10000000):
Non, là, il faut à chaque essai, tirer 100 parmi 100, sans remise
puis regarder si dans la ligne, il y a la séquence 123
si oui,
compteur+=1
print (compteur)
Hors ligne
#32 26-04-2020 19:01:14
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : Probabilité difficile (Bac 2019 Maroc)
RE,
- chaque ligne contient 100 nombres tirés au hasard et sans remise parmi n = 100
Pour moi, ça revient au même que d'avoir les nombres de 1 à 100 puis de les brasser...
- tu remplis un tableau de 10.000.000 de lignes
C'est que faisait ma première mouture, puis je me suis dit qu'au lieu de remplir 10 000 000 lignes puis de reprendre ligne par ligne (ce qui revenait à traiter deux fois un tableau de 10 000 000 lignes), il était plus rapide de générer 10 000 000 de brassages et de vérifier à la volée si chacun contenait la séquence 1 2 3...
En écrivant cela je m'aperçois qu'en fait entre ce que je voulais faire et ce que j'ai fait, il y a une nuance de taille :
je fais un brassage puis j'extrais au hasard 10 000 000 fois un triplet du brassage unique et je vérifie si ledit triplet est (1,2,3)...
Quand bien même le triplet serait bien 1,2,3 rien ne prouve que les 3 éléments composant le triplet aient été consécutifs dans le brassage.
C'est une faute de conception.
Je finis ce que je suis en train de faire et je corrige.
Je te tiens au courant.
Merci
@+
Dernière modification par yoshi (26-04-2020 19:57:43)
Hors ligne
#33 26-04-2020 19:27:26
- elmaths
- Membre
- Inscription : 03-12-2019
- Messages : 25
Re : Probabilité difficile (Bac 2019 Maroc)
Bonjour,
Nous avons d’évidence $X_n (\Omega) = \{3,4,...,n\}$ et pour $k \in X_n(\Omega)$, l’événement $[X = k]$ est réalisé si et seulement si les $k − 1$ premiers tirages amènent deux des trois boules intéressantes, le $k^{\text{ème}}$ tirage amenant la dernière boule intéressante parmi les $n − (k − 1)$ boules restantes (les boules intéressantes sont les boules marquèes $1$, $2$, $3$).
Dernière modification par elmaths (26-04-2020 19:28:48)
Hors ligne
#34 26-04-2020 19:30:45
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Bonjour,
Nous avons d’évidence $X_n (\Omega) = \{3,4,...,n\}$ et pour $k \in X_n(\Omega)$, l’événement $[X = k]$ est réalisé si et seulement si les $k − 1$ premiers tirages amènent deux des trois boules intéressantes, le $k^{\text{ème}}$ tirage amenant la dernière boule intéressante parmi les $n − (k − 1)$ boules restantes (les boules intéressantes sont les boules marquèes $1$, $2$, $3$).
Oui, je suis d'accord.
Et ?
PS : ah oui, j'ai compris, c'est la rédaction de la réponse à la question 3. Je suis très surpris par la grande qualité de la rédaction, la précision du code Tex, et en même temps, les difficultés à te faire parler.
Pourrais-tu, de la même manière, expliquer les réponses aux questions 1 et 2 ? On a les réponses, mais les formules sans explications ne sont pas recevables à un examen et encore moins à un concours.
Bon courage !
Dernière modification par freddy (27-04-2020 08:39:00)
Hors ligne
#35 26-04-2020 20:58:18
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : Probabilité difficile (Bac 2019 Maroc)
@freddy
Avec prog modifié (que je mets en ligne demain) pour 1 essai de 1 000 000 de brassages des 100 premiers nombres, avec recherche de la séquence 1 2 3, je trouve bien la proba de la Q1 : le compteur affiche 97.
Le calcul de elmath annonce $1000000/9900 \approx 101$
Hors ligne
#36 26-04-2020 21:03:28
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
@freddy
Avec prog modifié (que je mets en ligne demain) pour 1 essai de 1 000 000 de brassages des 100 premiers nombres, avec recherche de la séquence 1 2 3, je trouve bien la proba de la Q1 : le compteur affiche 97.
Le calcul de elmath annonce $1000000/9900 \approx 101$
Parfait !
Après, voir pour le 2 et pourquoi pas le 3 :-)
Hors ligne
#37 27-04-2020 10:04:40
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Bonjour,
$$X_n(\Omega)=\{3,4,...,n\}$$
$$\forall k\in X_n(\Omega). P(X_n=k)=\dfrac{card(X_n=k)}{card(\Omega)}=\dfrac{C_3^1C_{k-1}^2A_{n-3}^{k-3} (n-k)!}{n!}$$
Salut,
je pense que la dernière formule est inexacte.
En effet, pour $k=3$, on doit voir $P(X_n=3)=\dfrac{3!}{n(n-1)(n-2)}$, ce que la formule ne donne pas, sauf erreur.
PS : et pour $k=n$, il est immédiat qu'on doit avoir $P(X_n=n)=\dfrac{(n-1)!\times 3}{n!}=\dfrac{3}{n}$
Dernière modification par freddy (27-04-2020 16:55:54)
Hors ligne
#38 27-04-2020 10:44:29
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : Probabilité difficile (Bac 2019 Maroc)
Bonjour freddy,
As-tu Python installé sur ta machine ?
Bon, la nuit portant conseil, je me suis levé ce matin avec une autre méthode de tests moins bourrin que celle d'hier soir et plus rapide :
Q1 Pour 10 essais 1 000 000 de tirages avec numpy, j'ai obtenu :
109, 107, 108, 89, 101, 99, 98, 87, 110.
Ça colle...
Q2 Pour 10 essais 1 000 000 de tirages avec numpy :
166891, 165695, 166888, 166460, 167332, 166647, 166438, 166464, 166324, 166855.
Ça colle aussi...
Bravo, messieurs !
Voilà le nouveau script Python pur (sans numpy) si tu veux jouer avec...
from random import *
from time import time
U=[i for i in range(1,101)]
compteur =0
for essai in range(1000000):
seed=time()
shuffle(U)
a,b,c=U.index(1),U.index(2),U.index(3)
if c==b+1==a+2: # Pour Q2, remplacer par if a<b<c:
compteur+=1
print (compteur)
J'importe la totalité du module random
Depuis le module time, j'importe la fonction time()
Je construis la liste U des nombres de 1 à 100
J'initialise le compteur à 0
Je lance une boucle de 1 000 000 d'essais.
je réinitialise le générateur en le calant sur le temps pour moins de répétitivité...
je brasse les 100 nombres de U (correspond à 100 boules en vrac dans une urne)
je cherches les positions (index) respectives de 1, 2 et 3 dans ma liste U
Si a, b et c sont des postions consécutives
j'incrémente mon compteur
J'affiche la valeur du compteur
Voilà pour la Q1
Pour la Q2, seul changement le test devient if a<b<c
Reste maintenant la Q3...
Et cette simulation risque de ne pas être facile à coder...
@+
Hors ligne
#39 27-04-2020 10:55:13
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Salut yoshi,
Si, la dernière simulation est plus simple à coder, je pense.
Elle consiste à tirer des nombre au hasard et sans remise et tu repères à quel moment 1, 2 et 3 sont sortis, l’ordre important peu. Et tu stoppes la procédure à la sortie du dernier numéro qui complète les deux premiers.
La valeur de la va est le numéro du tirage (rang) qui fait apparaître le dernier bon numéro.
La statistique à construire est le nombre de fois où ce rang apparaît. Commence avec n = 10 avant d’aller voir = 100. On peut calculer les premières probabilités pour vérifier. J’ai déjà donné la première et la dernière.
Un test : il faut que la somme des probas trouvées soit très proche de 1 !
Dernière modification par freddy (27-04-2020 16:56:17)
Hors ligne
#40 27-04-2020 10:56:19
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
J’ai importé IDLE pour python, c’est bon ?
Hors ligne
#41 27-04-2020 11:31:03
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
Je n'utilise que l'IDLE pour Python : il est basique, mais j'ai la flemme d'essayer un autre Editeur...
Pourquoi l'importer ? L'importer dans quoi ?
A l'installation, Python crée un raccourci sur le Bureau Windows.
Après, moi, je l'ai transféré dans la barre de lancement rapide.
Tu as Windows ? quelle version ?
Si tu n'as pas l'icône IDLE sur ton bureau windows, le programme IDLE se trouve là :
Pythonxx\Lib\idlelib\idle.pyw
(xx est le numéro de version, chre moi c'est Python35 parce que je suis resté à Python 3.5...)
Il te faut donc créer toi un raccourci sur ton bureau qui pointe sur ce fichier.
Je présume que tu sais créer un raccourci.
Cela fait après c'est comme d'hab... double clic dessus.
La fenêtre de test de l'IDLE ouverte, pour tester mes fichiers (ou d'autres) :
Menu file --> New File
Une nouvelle fenêtre s'ouvre dans laquelle tu colles les fichiers que tu auras copié depuis Bibmath.
En principe l'indentation est respectée
Je viens d'essayer : la première ligne est décalée d'un espace sur la droite. La ramener en arrière.
C'est dû aux balise code de Bibmath...
@+
Hors ligne
#42 27-04-2020 12:32:47
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
Je suis sur MacBook Pro, avec macOS comme système d’exploitation ! Je vais regarder.
Hors ligne
#43 27-04-2020 18:55:52
- elmaths
- Membre
- Inscription : 03-12-2019
- Messages : 25
Re : Probabilité difficile (Bac 2019 Maroc)
elmaths a écrit :Bonjour,
$$X_n(\Omega)=\{3,4,...,n\}$$
$$\forall k\in X_n(\Omega). P(X_n=k)=\dfrac{card(X_n=k)}{card(\Omega)}=\dfrac{C_3^1C_{k-1}^2A_{n-3}^{k-3} (n-k)!}{n!}$$
Salut,
je pense que la dernière formule est inexacte.
En effet, pour $k=3$, on doit voir $P(X_n=3)=\dfrac{3!}{n(n-1)(n-2)}$, ce que la formule ne donne pas, sauf erreur.PS : et pour $k=n$, il est immédiat qu'on doit avoir $P(X_n=n)=\dfrac{(n-1)!\times 3}{n!}=\dfrac{3}{n}$
Bonjour, et pour X=k??
Hors ligne
#44 27-04-2020 21:40:53
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Hello,
la formule générale ne semble pas très compliquée à élaborer.
Si je prends par exemple $n=6$, il faut compter les différents cas.
Le premier est $k=3$. On a $3!$ permutations possibles de 123.
Le second est $k=4$. On a alors $3\times 3!\times (6-3)$ permutations possibles de 12a3
Ensuite, on a $k=5$. On a alors $3\times 4!\times \dbinom{6-3}{5-3}$ permutations possibles de 12ab3
Et enfin, on a $k=6$. On a alors $3\times 5!\times \dbinom{6-3}{6-3}$ permutations possibles de 12abc3
En généralisant, ça donne : $3\times (k-1)!\times \dbinom{n-3}{k-3}$ permutations possibles de $\underbrace{12abc\cdots g}_{k-1}\;3$
Il vient donc $\Pr(X_n=k) =3\times (k-1)!\times \dbinom{n-3}{k-3} \times \dfrac{(n-k)!}{n!}$ pour $3\le k \le n$
Il reste à vérifier que $$\sum_{k=3}^n \Pr(K_n=k)=1$$
PS : si on regarde bien, c'est une autre manière de compter les $n!$ permutations d'origine, il n'y a aucune modification du référentiel.
Dernière modification par freddy (30-04-2020 22:39:24)
Hors ligne
#45 30-04-2020 20:14:54
- elmaths
- Membre
- Inscription : 03-12-2019
- Messages : 25
Re : Probabilité difficile (Bac 2019 Maroc)
Pour choisir un nombre de $\{1, 2,3\}$ dans le tirage $k$, on a $C_3^1=3$ possibilités.
Pour ordonné les deux boules restant sur $k-1$ place, on a $A_{k-1}^2$ possibilités.
Après on choisit $k-3$ boules, pour ordonné sur $k-1$ place alors on a : $C^{k-3}_{n-3} (k-3)!$ possibilités.
Les boules restantes $(n-k)$ alors on a $(n-k)!$ possibilités
Finalement $$P(X_n=k)=\dfrac{C_3^1A_{k-1}^2C^{k-3}_{n-3} (k-3)!(n-k)!}{n!}=\dfrac{3(k-1)(k-2)}{n(n-1)(n-2)}$$
Hors ligne
#46 30-04-2020 22:36:51
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Pour choisir un nombre de $\{1, 2,3\}$ dans le tirage $k$, on a $C_3^1=3$ possibilités.
Pour ordonné les deux boules restant sur $k-1$ place, on a $A_{k-1}^2$ possibilités.
Après on choisit $k-3$ boules, pour ordonné sur $k-1$ place alors on a : $C^{k-3}_{n-3} (k-3)!$ possibilités.
Les boules restantes $(n-k)$ alors on a $(n-k)!$ possibilitésFinalement $$P(X_n=k)=\dfrac{C_3^1A_{k-1}^2C^{k-3}_{n-3} (k-3)!(n-k)!}{n!}=\dfrac{3(k-1)(k-2)}{n(n-1)(n-2)}$$
Salut,
OK, mais maintenant, il faut que tu prouves que $$\sum_{k=3}^n P(X_n=k)=1$$ par tout moyen à ta convenance :-)
Dernière modification par freddy (30-04-2020 22:37:31)
Hors ligne
#47 01-05-2020 11:51:07
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Salut yoshi,
Si, la dernière simulation est plus simple à coder, je pense.
Elle consiste à tirer des nombre au hasard et sans remise et tu repères à quel moment 1, 2 et 3 sont sortis, l’ordre important peu. Et tu stoppes la procédure à la sortie du dernier numéro qui complète les deux premiers.
La valeur de la va est le numéro du tirage (rang) qui fait apparaître le dernier bon numéro.
La statistique à construire est le nombre de fois où ce rang apparaît. Commence avec n = 10 avant d’aller voir = 100. On peut calculer les premières probabilités pour vérifier. J’ai déjà donné la première et la dernière.Un test : il faut que la somme des probas trouvées soit très proche de 1 !
Salut yoshi,
j'ai une procédure de simulation de la Q3 à te proposer, j'essaie avec mes rudiments de Python, je tâtonne, tu iras plus vite et j'apprendrais un truc (je ne sais pas comment on récupère le numéro de la colonne d'un tableau, je vais chercher).
Donc tu brasses aléatoirement U avec n=100 par exemple.
puis tu fais une boucle indicée par $i$ qui va de 1 à n et tu regardes le contenu de U(i).
Là, si U(i) est égal à 1, 2 ou 3, un premier compteur CPT1 augmente de 1 et tu continues ;
puis, si U(i) est égal à 1, 2 ou 3, CPT1=+1 et tu continues ;
puis si U(i) est égal à 1, 2 ou 3, CPT1=+1 et tu stoppes. (Faut donc créer une boucle TANT QUE)
Tu récupères la valeur du dernier indice de ta boucle qui t'a fait stopper, on dira $k$.
A ce stade, dans un tableau de résultats RESULT, tu augmentes de 1 la valeur de RESULT(k),
puis tu recommences la procédure, par exemple 1 million de fois.
Pour chaque valeur de $k$ , tu devrais trouver un nombre proche de $1,03\times 3\times (k-1)\times (k-2)$ si $n=100$.
Je vais essayer de mon côté !
Hors ligne
#48 01-05-2020 12:55:34
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
@yoshi,
tu fais une boucle indicée par i qui va de 1 à n et tu regardes le contenu de U(i).
Là, si U(i) est égal à 1, 2 ou 3, un premier compteur CPT1 augmente de 1 et tu continues ;
puis, si U(i) est égal à 1, 2 ou 3, CPT1=+1 et tu continues ;
puis si U(i) est égal à 1, 2 ou 3, CPT1=+1
Donc, la boucle TANT QUE cesse quand CPT1 = 3.
1. Tu fais 3 fois le même chose, c'est normal ? Oui, tu testes les valeurs 123, peu important l'ordre et par ce balayage, tu es sûr des les avoir vus tous les 3. Ce procédé te permet de ne pas avoir à chercher dans quel ordre ils sont car le seul truc qui compte est de savoir où se trouve le dernier des 3 dans la permutation.
2. Si tu précises qu'il y a un premier compteur, il y forcément au moins un 2e ? Oui, le second est le tableau de résultat qui est un compteur multiple.
3.
from random import *
from time import time
U=[i for i in range(1,101)] # Je stocke les nombres de 1 à 100 da,ns la liste U
compteur =0 # j'initialise compteur à 0
shuffle(U) #je brasse U
for i in range(100):
[\code]
@+
Hors ligne
#49 01-05-2020 14:06:50
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
Je crois avoir résolu le problème entretemps alors j'ai supprimé mon post pour le remplacer par un autre, sans voir que tu avais déjà répondu...
Alors je te propose ce code :
from random import *
U=[i for i in range(1,101)]
RESULT=[0 for i in range(100)]
n=10
for brassage in range(n):
shuffle(U)
a,b,c=U.index(1),U.index(2),U.index(3)
T=[[1,a],[2,b],[3,c]]
T.sort(key=lambda X:X[1])
k=T[2][1]
RESULT[k]+=1
print (RESULT)
Explications.
Je crée une liste U des nombres de 1 à 100
Je crée une liste RESULT de 100 zéros...
Dans les deux listes les index (position) des nombres démarrent à 0.
Ça pose problème ou pas ?
J'appelle n le nombre de fois où je vais procéder au brassage de U.
J'ai fait 3 essais pour n=10, n=100, n=1000 (les 3 RESULT obtenus sont en fin d'explication.
Je lance la boucle brassante
je brasse U
je récupère dans a,b,c les positions de 1, 2 et 3 dans le U brassé
1, 2, 3 et la position de chacun est stockée dans une mini-liste à 2 éléments (par exemple[1,85]) et je stocke ces 3 mini-listes dans une liste plus grande : c'est le T=[[1,a],[2,b],[3,c]]
je trie ensuite ces mini-listes de T par ordre de 2e élément croissant, c'est à dire par ordre de position croissante...
Ainsi la 3e mini-liste de T sera en position n°2 dans T (rappel : les index commencent à 0 : index 2 --> 3e position)
Cette dernière mini-liste est T[2] et le 2e élément la mini-liste, k est repérée par l'index 1 dans T[2], d'où le k=T[2][1]
Après j'incrémente lde 1 la valeur en position k dans RESULT
Et j'ai affiché RESULT pour te donner les 3 résultats sus-cités :
n=10
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0]
n=100
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 3, 0, 0, 2, 0, 0, 0, 0, 1, 2, 0, 0, 2, 1, 1, 2, 1, 0, 0, 1, 0, 0, 0, 1, 3, 2, 3, 0, 1, 2, 1, 3, 2, 2, 0, 0, 2, 1, 1, 2, 2, 1, 2, 5, 1, 0, 1, 1, 3, 2, 1, 3, 3, 5, 2, 1, 1, 2, 2, 4, 1, 2, 4, 4]
n=1000
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 3, 2, 4, 1, 1, 3, 3, 2, 1, 0, 3, 2, 1, 2, 4, 0, 8, 5, 3, 2, 4, 3, 1, 10, 4, 4, 10, 3, 7, 10, 4, 5, 7, 11, 6, 10, 11, 15, 8, 16, 12, 14, 14, 11, 9, 10, 20, 6, 11, 10, 16, 20, 7, 13, 18, 12, 24, 16, 25, 21, 18, 19, 23, 16, 24, 21, 22, 18, 28, 21, 19, 19, 20, 28, 25, 30, 21, 33, 42, 34, 27]
Que t'en semble ?
Ensuite, pour chaque position k dans RESULT je fais quoi, ta multiplication ? Alors à quoi servent les valeurs stockées ?
@+
Dernière modification par yoshi (01-05-2020 19:00:05)
Hors ligne
#50 01-05-2020 14:41:34
- freddy
- Membre chevronné

- Lieu : Paris
- Inscription : 27-03-2009
- Messages : 7 457
Re : Probabilité difficile (Bac 2019 Maroc)
Re,
en sortie, tu n'as rien à faire hormis regarder les résultats.
le résultat théorique pour chaque rang $k$ est donné par ($n=$nombre de boucles) $3n\times (k-1)(k-2)/(100\times 99\times 98)$
Ceci est probablement la raison pour laquelle ton tableau RESULT se remplit progressivement, au fur et à mesure que $n$ croit.
Cela étant, je n'aime pas trop la tête pour $n=1.000$ car on voit bien qu'on devrait avoir plutôt quelque chose autour de :
RESULT(100)=30
RESULT (99)=29
RESULT (98)=28
et là, ça fluctue un peu trop à mon goût, mais je peux avoir tort, car pas assez de tirages.
Je regarde ton truc T, pas tout bien compris (mais en même temps, je regarde un film ) :-)
Je veux être certain que tu récupères bien le rang du troisième larron du triplet 123.
Peu importe de commencer par 0 dans les tableaux.
Essaie avec $n=100.000$ pour voir, ça devrait moins fluctuer.
PS : OK, j’ai compris le truc T, c’est bon. Ce qui est puissant est la fonction index, c’est bien !
Dernière modification par freddy (01-05-2020 14:52:00)
Hors ligne







