Exercices math python


  • M

    Bonjour
    Besoin d aide
    Voici exercice

    On veut calculer la moyenne pondérée d une série de valeurs numérique
    Pour cela on définit la liste L de ces valeurs et le liste E des effectifs correspondant
    Completer le programme de la fonction moy ci contre afin qu'elle retourne la moyenne pondérée de cette série

    17599207588055012263418818436406.jpg


  • M

    J ai trouvé cela mais vraiment pas sûr

    For i in range (i;L)


  • N
    Modérateurs

    @m12 Bonjour,

    Utilise la formule de calcul de la moyenne pondérée :
    Soit
    ∑i=1nxi×ni∑i=1nni\dfrac{\sum_{i=1}^{n} {x_i\times n_i} }{\sum_{i=1}^{n} n_i}i=1nnii=1nxi×ni


  • M

    @Noemi a dit dans Exercices math python :

    @m12 Bonjour,

    Utilise la formule de calcul de la moyenne pondérée :
    Soit
    ∑i=1nxi×ni∑i=1nni\dfrac{\sum_{i=1}^{n} {x_i\times n_i} }{\sum_{i=1}^{n} n_i}i=1nnii=1nxi×ni

    OK

    Donc

    Def moy(L;E) :
    S=0; N=0
    For i in range (I ; L)
    S=S+L(i) * E (i)
    N = N + E(i)
    Return (s/n)

    Mais vraiment pas sur


  • B

    Bonjour

    Attention de respecter les alignements de lignes.

    Second soucis :
    Le "for i in range (I ; L)" n'est pas correct.

    Il faut un nombre de boucles égal à la taille des listes (n'importe laquelle, car elles sont supposées posséder le même nombre de données)

    Donc ceci, par exemple :

    def moy(L,E):
       s = 0 ; N = 0
       for i in range(0,len(L)):
          s = s + L[i]*E[i]
          N = N + E[i]
       return(s/N)
    

  • B

    Complément à ma réponse précédente.

    Si on veut tester, on peut créer 2 listes et appeler (et printer) la procédure écrite.

    def moy(L,E):
       s = 0 ; N = 0
       for i in range(0,len(L)):
          s = s + L[i]*E[i]
          N = N + E[i]
       return(s/N)      
       
    L=[1,5,6,-8]
    E=[17,2,11,5]
    print(moy(L,E))
    

    La réponse dans cet exemple est:

    1.5142857142857142


  • M

    @Black-Jack a dit dans Exercices math python :

    Bonjour

    Attention de respecter les alignements de lignes.

    Second soucis :
    Le "for i in range (I ; L)" n'est pas correct.

    Il faut un nombre de boucles égal à la taille des listes (n'importe laquelle, car elles sont supposées posséder le même nombre de données)

    Donc ceci, par exemple :

    def moy(L,E):
       s = 0 ; N = 0
       for i in range(0,len(L)):
          s = s + L[i]*E[i]
          N = N + E[i]
       return(s/N)
    

    Ah ok je me suis juste tromper à la ligne for

    17599232533716187583990913787858.jpg