Python et probabilité

Retrouver tous les sujets résolus.
Répondre
Bastien

Python et probabilité

Message par Bastien » sam. 31 oct. 2020 22:46

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.
sos-math(21)
Messages : 10348
Enregistré le : lun. 30 août 2010 11:15

Re: Python et probabilité

Message par sos-math(21) » dim. 1 nov. 2020 08:39

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
Bastien

Re: Python et probabilité

Message par Bastien » dim. 1 nov. 2020 12:30

Bonjour,
Je ne comprends pas votre réponse de la question 1 pouvez vous m’expliquer ? Comment trouvez vous 365-k+1 ?
Merci
Bastien

Re: Python et probabilité

Message par Bastien » dim. 1 nov. 2020 12:33

Bonjour,
Je ne comprends pas comment justifier même avec vos explications. Pouvez vous me reexpliquer ? Comment trouvez-vous 365-k+1 ?
Merci
SoS-Math(9)
Messages : 6338
Enregistré le : mer. 5 sept. 2007 12:10

Re: Python et probabilité

Message par SoS-Math(9) » lun. 2 nov. 2020 18:50

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.
Bastien

Re: Python et probabilité

Message par Bastien » mer. 4 nov. 2020 18:18

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).
sos-math(21)
Messages : 10348
Enregistré le : lun. 30 août 2010 11:15

Re: Python et probabilité

Message par sos-math(21) » mer. 4 nov. 2020 19:09

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)

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)
Donc si tu appelles ta fonction anniversaire avec \(p=0,5\), tu auras une valeur renvoyée de 23 :

Code : Tout sélectionner

>>> anniversaire(0.5)
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
Bastien

Re: Python et probabilité

Message par Bastien » mer. 4 nov. 2020 20:50

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
sos-math(21)
Messages : 10348
Enregistré le : lun. 30 août 2010 11:15

Re: Python et probabilité

Message par sos-math(21) » mer. 4 nov. 2020 21:06

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
Bastien

Re: Python et probabilité

Message par Bastien » mer. 4 nov. 2020 21:22

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 ?
sos-math(21)
Messages : 10348
Enregistré le : lun. 30 août 2010 11:15

Re: Python et probabilité

Message par sos-math(21) » mer. 4 nov. 2020 21:27

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
Bastien

Re: Python et probabilité

Message par Bastien » mer. 4 nov. 2020 21:28

De plus, je n’arrive pas à rentrer mon p. Ou dois-je le mettre ?
sos-math(21)
Messages : 10348
Enregistré le : lun. 30 août 2010 11:15

Re: Python et probabilité

Message par sos-math(21) » mer. 4 nov. 2020 21:37

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 :
Capture_3.PNG
Bonne continuation
Bastien

Re: Python et probabilité

Message par Bastien » mer. 4 nov. 2020 21:38

Ah d’accord merci. Je ne vous embête pas plus longtemps.
Bonne soirée
sos-math(21)
Messages : 10348
Enregistré le : lun. 30 août 2010 11:15

Re: Python et probabilité

Message par sos-math(21) » mer. 4 nov. 2020 21:38

Bonne continuation et à bientôt sur sos-math
Répondre