Formule mathématique en python

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. ben je vais essayer alors...je ne garantie rien
    1. Contributeur
      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.
      1. 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)
        1. Contributeur
          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.
          1. 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...
            1. Contributeur
              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.