Formule mathématique en python

Templier Nocturne Messages postés 9989 Statut Membre -  
Templier Nocturne Messages postés 9989 Statut Membre -
Bonjour,

je dispose d'une formule mathématique disponible sur ce lien http://www.hostingpics.net/viewer.php?id=438781equation.png mais je ne sais pas la mettre en python...

quelqu'un sais il faire ça ?

6 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Tu te crées la fonction factorielle, la fonction combinatoire, et après c'est une simple somme.
    def fact(a):
        pass
    
    def C(n,p):
        pass
    
    if __name__=='__main__':
        res=0
        for k in range(c,b+1):
            res+=C(b,k)*(1.0/a)**k*(1-1.0/a)**(b-k)
    
        print res
    
    

    Je te laisse faire la fonction factorielle et C ;)
    De plus, n'oublie pas de définir les variables comme c b et a.
    0
  2. Templier Nocturne Messages postés 9989 Statut Membre 1 107
     
    ben en fait le problème c'est que je sais pas faire ça...je connais pas super bien python et en plus je comprend rien à la formule...
    0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Tu n'as pas besoin de comprendre la formule, je t'ai donné le code. Il ne te reste plus qu'à faire factoriel et la fonction C.
    Sachant que C(n,p) vaut fact(n)/fact(p)/fact(n-p). Hum, je t'ai même donné la réponse ^^.
    Si tu n'arrives pas à faire la fonction factoriel. Ecris au moins l'algorithme.
    0
  4. Templier Nocturne Messages postés 9989 Statut Membre 1 107
     
    Il ne te reste plus qu'à faire factoriel et la fonction C.

    ben en fait je sais vraiment pas faire ça...mon code resemble à ça :

    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
    
    zmin=int(raw_input("zombies min="))
    zmax=int(raw_input("zombies max="))
    defville=int(raw_input("défense de la ville="))
    c=int(raw_input("citoyens ="))
    
    #retrait de la défense de la ville
    zmaxen=zmax-defville
    zminen=zmin-defville
    
    #impossible de subir une attaque négative
    if zmaxen<0:
    	zmaxen=0
    
    if zminen<0:
    	zminen=0
    
    #calcule des  chances minimuns et maximums
    percentmax=((float(c)-1)/c)**zmaxen
    percentmin=((float(c)-1)/c)**zminen
    
    #écriture du résultat
    print "pourcentage de survie si l attaque est au plus fort =", percentmax
    print "pourcentage de survie si l attaque est au moins fort =", percentmin


    ma formule mathématique est en gras et je cherche à la remplacer par la nouvelle (je m'arrangerais pour changer les lettres) sauf que mes connaissances en python sont vraiment légères et je ne sais pas du tout faire ce que tu me dit.( je comprend même pas la formule que j'ai)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Dans mon précédent post, il y a la réponse pour la fonction C.

    Sachant que C(n,p) vaut fact(n)/fact(p)/fact(n-p)
    Donc :
    def C(n,p) :
        return fact(n)/fact(p)/fact(n-p)
    


    Pour l'autre fonction, je te demande pas de le faire en python, mais de le faire en algorithme ou en français ;).
    Ca prends même pas 5 lignes. fact(5) = 5*4*3*2*1.

    J'en dirais pas plus, pour ne pas tout faire non plus. Mais note bien que là, je ne parle pas de python, mais d'algorithmique très basique.
    0
  7. Templier Nocturne Messages postés 9989 Statut Membre 1 107
     
    ben je vais essayer alors...je ne garantie rien
    0