Python et probabilité

Retrouver tous les sujets résolus.
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 : 10401
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é de364365.
Pour la troisième, il reste 363 dates possibles donc une probabilité de363365.
...
Pour la kème personne, il reste 365-k+1 dates possibles donc une probabilité de363365.
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
365×364××(365k+1)365k, ce que l'on peut aussi écrire :
365×364××(365k+1)365k=365×364××2×1((365k)×(365k1)××2×1)365n=365!(365k)!×365k donc en prenant l'événement contraire on obtient bien pk
Pour ton programme Python, il s'agit de calculer le produit 365×364××(365k+1).
Donc on part de N=365 et on parcourt l'intervalle des entiers entre 1 et k1 et à chaque tour de boucle i on remplace N par son produit avec (365i)
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 : 6351
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 ¯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(¯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 : 10401
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 : 10401
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 : 10401
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 : 10401
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 : 10401
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