Python et probabilité
Python et probabilité
Bonjour,
J'ai un exercice de maths mais je ne comprends pas quoi faire. À fin de simplifier les choses, on considère qu'une année comporte 365 jours. Soit k un entier supérieur ou égal a 2. On note pk la probabilité que dans un groupe composé de k personnes, au moins 2 est la même date d'anniversaire.
1) Justifier que pk = 1- (A^{k}365)/365^{k}ou A^{k}365 = n!/(n-k)! 2) Compléter le script si contre afin qu'il retourne la probabilité pk pour une valeur de k donnée.
Programme :
Def pk(k):
N= .......
For i in range (.....,.....):
N= ......
Return(1-N/365**k)
Ce que j'ai fait : A la question 1, j'ai trouvé 1-[(365!)/[(365-k)!*365^{k}]] mais je ne sais pas quoi faire après. Et même je ne sais pas si c'est bien.
J'ai un exercice de maths mais je ne comprends pas quoi faire. À fin de simplifier les choses, on considère qu'une année comporte 365 jours. Soit k un entier supérieur ou égal a 2. On note pk la probabilité que dans un groupe composé de k personnes, au moins 2 est la même date d'anniversaire.
1) Justifier que pk = 1- (A^{k}365)/365^{k}ou A^{k}365 = n!/(n-k)! 2) Compléter le script si contre afin qu'il retourne la probabilité pk pour une valeur de k donnée.
Programme :
Def pk(k):
N= .......
For i in range (.....,.....):
N= ......
Return(1-N/365**k)
Ce que j'ai fait : A la question 1, j'ai trouvé 1-[(365!)/[(365-k)!*365^{k}]] mais je ne sais pas quoi faire après. Et même je ne sais pas si c'est bien.
-
- Messages : 10348
- Enregistré le : lun. 30 août 2010 11:15
Re: Python et probabilité
Bonjour,
pour ce type de raisonnement, il vaut mieux passer par l'événement contraire <<Les k personnes choisies ont des dates d'anniversaires toutes distinctes>>
Dans ce cas, si tu considère la première personne, il y a un choix de dates de 365/S65=1.
Pour la deuxième, il reste 364 dates possibles donc une probabilité de\(\dfrac{364}{365}\).
Pour la troisième, il reste 363 dates possibles donc une probabilité de\(\dfrac{363}{365}\).
...
Pour la kème personne, il reste 365-k+1 dates possibles donc une probabilité de\(\dfrac{363}{365}\).
Donc par principe multiplicatif (les événements s'enchaînent), la probabilité de l'événement de départ est égal au produit de ces probabilités donc
\(\dfrac{365\times 364\times \ldots\times (365-k+1)}{365^k}\), ce que l'on peut aussi écrire :
\(\dfrac{365\times 364\times \ldots\times (365-k+1)}{365^k}=\dfrac{365\times 364\times \ldots\times 2\times 1}{((365-k)\times (365-k-1)\times \ldots\times 2\times 1)365^n}=\dfrac{365!}{(365-k)!\times 365^k}\) donc en prenant l'événement contraire on obtient bien \(p_k\)
Pour ton programme Python, il s'agit de calculer le produit \(365\times 364\times \ldots\times (365-k+1)\).
Donc on part de \(N=365\) et on parcourt l'intervalle des entiers entre 1 et \(k-1\) et à chaque tour de boucle \(i\) on remplace \(N\) par son produit avec \((365 -i)\)
Cette description devrait te permettre de compléter le programme Python.
Bonne continuation
pour ce type de raisonnement, il vaut mieux passer par l'événement contraire <<Les k personnes choisies ont des dates d'anniversaires toutes distinctes>>
Dans ce cas, si tu considère la première personne, il y a un choix de dates de 365/S65=1.
Pour la deuxième, il reste 364 dates possibles donc une probabilité de\(\dfrac{364}{365}\).
Pour la troisième, il reste 363 dates possibles donc une probabilité de\(\dfrac{363}{365}\).
...
Pour la kème personne, il reste 365-k+1 dates possibles donc une probabilité de\(\dfrac{363}{365}\).
Donc par principe multiplicatif (les événements s'enchaînent), la probabilité de l'événement de départ est égal au produit de ces probabilités donc
\(\dfrac{365\times 364\times \ldots\times (365-k+1)}{365^k}\), ce que l'on peut aussi écrire :
\(\dfrac{365\times 364\times \ldots\times (365-k+1)}{365^k}=\dfrac{365\times 364\times \ldots\times 2\times 1}{((365-k)\times (365-k-1)\times \ldots\times 2\times 1)365^n}=\dfrac{365!}{(365-k)!\times 365^k}\) donc en prenant l'événement contraire on obtient bien \(p_k\)
Pour ton programme Python, il s'agit de calculer le produit \(365\times 364\times \ldots\times (365-k+1)\).
Donc on part de \(N=365\) et on parcourt l'intervalle des entiers entre 1 et \(k-1\) et à chaque tour de boucle \(i\) on remplace \(N\) par son produit avec \((365 -i)\)
Cette description devrait te permettre de compléter le programme Python.
Bonne continuation
Re: Python et probabilité
Bonjour,
Je ne comprends pas votre réponse de la question 1 pouvez vous m’expliquer ? Comment trouvez vous 365-k+1 ?
Merci
Je ne comprends pas votre réponse de la question 1 pouvez vous m’expliquer ? Comment trouvez vous 365-k+1 ?
Merci
Re: Python et probabilité
Bonjour,
Je ne comprends pas comment justifier même avec vos explications. Pouvez vous me reexpliquer ? Comment trouvez-vous 365-k+1 ?
Merci
Je ne comprends pas comment justifier même avec vos explications. Pouvez vous me reexpliquer ? Comment trouvez-vous 365-k+1 ?
Merci
-
- Messages : 6338
- Enregistré le : mer. 5 sept. 2007 12:10
Re: Python et probabilité
Bonjour Bastien,
Désolé pour le retard mais hier après-midi le forum était fermé et aujourd'hui on avait nos élèves.
Si on pose \(A\) l'événement "dans un groupe composé de k personnes, au moins 2 est la même date d'anniversaire."
Alors l'événement contraire \(\overline{A}\) est "dans un groupe composé de k personnes, aucune personne ont la même date d'anniversaire." et on aura P(\(A\)) = 1 - P(\(\overline{A}\)) (c'est pour cela que tu as pk = 1 - (A^{k}365)/365^{k}).
Pourquoi 365 -k + 1 ? On t'a donné :
Pour la 1ère personne, il y a 365 dates possibles donc une probabilité de 365/365 .
Pour la 2ème, il reste 365 - 1 dates possibles donc une probabilité de364/365.
Pour la 3ème, il reste 365 - 2 dates possibles donc une probabilité de3633/65.
...
Pour la kème personne, il reste 365-(k-1) = 365 - k + 1 dates possibles donc une probabilité de (365-k+1)/365.
SoSMath.
Désolé pour le retard mais hier après-midi le forum était fermé et aujourd'hui on avait nos élèves.
Si on pose \(A\) l'événement "dans un groupe composé de k personnes, au moins 2 est la même date d'anniversaire."
Alors l'événement contraire \(\overline{A}\) est "dans un groupe composé de k personnes, aucune personne ont la même date d'anniversaire." et on aura P(\(A\)) = 1 - P(\(\overline{A}\)) (c'est pour cela que tu as pk = 1 - (A^{k}365)/365^{k}).
Pourquoi 365 -k + 1 ? On t'a donné :
Pour la 1ère personne, il y a 365 dates possibles donc une probabilité de 365/365 .
Pour la 2ème, il reste 365 - 1 dates possibles donc une probabilité de364/365.
Pour la 3ème, il reste 365 - 2 dates possibles donc une probabilité de3633/65.
...
Pour la kème personne, il reste 365-(k-1) = 365 - k + 1 dates possibles donc une probabilité de (365-k+1)/365.
SoSMath.
Re: Python et probabilité
D’accord merci
La question 3 nous donne un autre programme qui fait appel à la fonction pk précédente.
Def anniversaire (p):
k=2
while pk(k)<p:
k=k+1
return(k)
La question c à laquelle je n’y arrive pas dit programmer les deux fonctions plus interpréter le résultat retourné par l’appel anniversaire (0.9).
La question 3 nous donne un autre programme qui fait appel à la fonction pk précédente.
Def anniversaire (p):
k=2
while pk(k)<p:
k=k+1
return(k)
La question c à laquelle je n’y arrive pas dit programmer les deux fonctions plus interpréter le résultat retourné par l’appel anniversaire (0.9).
-
- Messages : 10348
- Enregistré le : lun. 30 août 2010 11:15
Re: Python et probabilité
Bonjour,
ta fonction te donne le nombre minimal de personnes à avoir dans une assemblée pour que la probabilité qu'au moins deux personnes aient la même date d'anniversaire soit supérieure ou égale au nombre \(p\) (qui doit être compris entre 0 et 1)
Donc si tu appelles ta fonction anniversaire avec \(p=0,5\), tu auras une valeur renvoyée de 23 :
il faut au moins 23 personnes pour que la probabilité qu'au moins deux personnes aient la même date d'anniversaire soit supérieure ou égale à 0,5.
Bonne continuation
ta fonction te donne le nombre minimal de personnes à avoir dans une assemblée pour que la probabilité qu'au moins deux personnes aient la même date d'anniversaire soit supérieure ou égale au nombre \(p\) (qui doit être compris entre 0 et 1)
Code : Tout sélectionner
def pk(k):
"""paradoxe des anniversaires"""
N = 365
for i in range (1,k):
N = N * (365-i)
return(1-N/365**k)
def anniversaire(p):
k=2
while pk(k)<p:
k=k+1
return(k)
Code : Tout sélectionner
>>> anniversaire(0.5)
23
Bonne continuation
Re: Python et probabilité
J’avais compris ça. C’est juste que ma calculatrice me met que la ligne est invalide. C’est pour cette raison que je n’arrive pas à trouver le résultat avec p = 0,9
-
- Messages : 10348
- Enregistré le : lun. 30 août 2010 11:15
Re: Python et probabilité
Bonjour,
ces programmes fonctionnent, tu peux les tester sur replit : https://repl.it/@rnivelle/anniversaires
Si tu as une erreur, c'est peut-être un problème de syntaxe (une indentation non respectée, par exemple).
Bonne continuation
ces programmes fonctionnent, tu peux les tester sur replit : https://repl.it/@rnivelle/anniversaires
Si tu as une erreur, c'est peut-être un problème de syntaxe (une indentation non respectée, par exemple).
Bonne continuation
Re: Python et probabilité
La page n’est plus disponible. Pouvez-vous la remettre en ligne ?
De plus je voulais savoir quel était le rôle de la fonction anniversaire ?
De plus je voulais savoir quel était le rôle de la fonction anniversaire ?
-
- Messages : 10348
- Enregistré le : lun. 30 août 2010 11:15
Re: Python et probabilité
Bonjour,
la page a toujours été disponible, je ne vois pas où est le problème https://repl.it/@rnivelle/anniversaires#main.py
Je t'ai déjà dit le rôle de la fonction anniversaire dans un de mes précédents messages.
Bonne continuation
la page a toujours été disponible, je ne vois pas où est le problème https://repl.it/@rnivelle/anniversaires#main.py
Je t'ai déjà dit le rôle de la fonction anniversaire dans un de mes précédents messages.
Bonne continuation
Re: Python et probabilité
De plus, je n’arrive pas à rentrer mon p. Ou dois-je le mettre ?
-
- Messages : 10348
- Enregistré le : lun. 30 août 2010 11:15
Re: Python et probabilité
Bonjour,
dans replit, tu appuies sur run, puis tu vas dans la console à droite et tu appelles la fonction en tapant anniversaire(0.9) par exemple : Bonne continuation
dans replit, tu appuies sur run, puis tu vas dans la console à droite et tu appelles la fonction en tapant anniversaire(0.9) par exemple : Bonne continuation
Re: Python et probabilité
Ah d’accord merci. Je ne vous embête pas plus longtemps.
Bonne soirée
Bonne soirée
-
- Messages : 10348
- Enregistré le : lun. 30 août 2010 11:15
Re: Python et probabilité
Bonne continuation et à bientôt sur sos-math