Aide pour un programme python
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Aide pour un programme python



  1. #1
    akapelayo

    Aide pour un programme python


    ------

    Bonjour, je suis actuellement en Terminale, et mon grand oral arrive va très vite arrivé.
    Et je rencontre un petit problème pour traiter mon sujet de mathématiques, mon sujet porte sur le paradoxe des anniversaires et j'ai trouvé un programme python sur internet permettant de trouver l'effectif nécessaire en fonction de la probabilité cherchée.
    Le programme est le suivant :
    Code:
    def pk(k):
        """calcul de la probabilité qu'au moins deux personnes d'une assemblée de k personnes aient la même date d'anniversaire"""
        N = 365
        for i in range (1,k):
            N = N * (365-i)
        return 1 - N/365**k
    
    def anniversaire(p):
        """ recherche du seuil d'effectif pour atteindre ou dépasser p"""
        k=2
        while pk(k) < p:
            k = k + 1
        return k
    Le problème c'est que je ne comprends pas comment fonctionne le programme, à la ligne 5 et 6 je ne comprends pas pourquoi ce calcul est fait et lorsque je l'applique avec un k donné, je tombe sur 1...

    J'espère que quelqu'un pourra m'expliquer, en attendant merci de votre attention et de votre temps.
    Bonne journée à vous! Et merci d'avance

    -----

  2. #2
    pm42

    Re : Aide pour un programme python

    Est ce que tu utilises bien Python 3 ? Python 2 fait une division entière quand il y a / entre 2 entiers. Python 3 lui fait une diversion entière.
    Ce qui fait que pk(k) renvoie toujours 1 en Python 2 mais marche en Python 3.

    Pour le reste, le code implémente la formule pour calculer la dite probabilité de ce que j'en vois.

  3. #3
    jacknicklaus

    Re : Aide pour un programme python

    Bonjour,

    pourquoi chercher sur Internet ? Pourquoi ne pas le faire toi même ?
    Pourquoi ne pas regarder "à la main" comment ca se passe avec k = 2 ? Et regarder ce que sort comme résultat la fonction pk(2) ?

    Tu aurais alors eu une chance de constater que ce programme est faux. A cette ligne là précisément.

    Citation Envoyé par akapelayo Voir le message
    for i in range (1,k):

    Internet c'est bien ,ton sens critique et ton intelligence, c'est mieux
    There are more things in heaven and earth, Horatio, Than are dreamt of in your philosophy.

  4. #4
    Black Jack 2

    Re : Aide pour un programme python

    Citation Envoyé par jacknicklaus Voir le message
    Bonjour,

    pourquoi chercher sur Internet ? Pourquoi ne pas le faire toi même ?
    Pourquoi ne pas regarder "à la main" comment ca se passe avec k = 2 ? Et regarder ce que sort comme résultat la fonction pk(2) ?

    Tu aurais alors eu une chance de constater que ce programme est faux. A cette ligne là précisément.
    Bonjour,

    En es-tu bien sûr ?

    La procédure pk(k) est censée retourner la probabilité que parmi k personnes prises au hasard dans une très grande population (dont les anniversaires sont supposés répartis uniformément sur l'année), il y en ait qui ont un anniversaire commun.

    Donc pk(2) est censée retourner la proba que pour 2 personnes choisies au hasard dans une très grande population, elles aient le même anniversaire.
    La réponse est normalement 1/365 = 0.002739726027...
    et si on lance pk(2) ... cela retourne : 0.002739726027397249

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : Aide pour un programme python

    Citation Envoyé par Black Jack 2 Voir le message
    En es-tu bien sûr ?
    Non, il n'en est pas sur et même il a tort : le programme renvoie les bonnes valeurs en effet.
    Le but était juste d'être cassant et méprisant avec un nouvel arrivant sans rien lui expliquer.

    Et parler de sens critique et d'intelligence quand on se trompe comme ça (et en ignorant la réponse pertinente donnée au dessus) est assez ironique.

Discussions similaires

  1. demande d'aide pour trouver erreur dans programme Python
    Par nalicos dans le forum Programmation et langages, Algorithmique
    Réponses: 36
    Dernier message: 31/03/2020, 12h10
  2. Difficulte pour un programme python
    Par Troy90 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 12/03/2019, 23h21
  3. [Python] subprocess, lancer un autre programme avec python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 30/11/2016, 18h56
  4. Python aide pour un petit programme
    Par Lionelno dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 09/01/2016, 16h34
  5. Idée pour un programme sur Python
    Par killian971317 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 23/09/2015, 18h04