Aller au contenu

python


Clemmellian

Messages recommandés

  • E-Bahut
il y a 56 minutes, Clemmellian a dit :

Mais, je ne comprends pas la partie sur la variace

je crois avoir compris

L'écart type je le note comment ?

Bonjour,

C'est compris, ou pas, pour la variance ?

Quant à l'écart-type, tu lui donnes le nom que tu veux. De toute façon, tu n'en as pas vraiment besoin, puisque c'est sqrt(V).  Après, tu peux toujours préciser lors de l'écriture des résultats.

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 54
  • Created
  • Dernière réponse

import math

def indicateur_var(n):
    liste_x=[]
    liste_proba=[]
    for i in range (n):
        a=float(input("saisir la valeur de Xi"))
        liste_x.append(a)
        b=float(input("saisir la probabilité Pi"))
        liste_proba.append(b)
    E=0
    for k in range(n):
        E=E+(liste_x[k])*(liste_proba[k])
    for k in range(n):
        V=V+liste_proba[k] *(liste_x[k]-E)**2
    for k in range (n):
        Ecart: sqrt(V)
    return Ecart       
        
print(indicateur_var(3))
        

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Cette partie n'est pas correcte

for k in range (n):
        Ecart: sqrt(V)
    return Ecart       

D'abord, inutile de calculer n fois l'écart-type, c'est toujours la même valeur puisque V ne change pas. Donc, un seul calcul suffit : pas de "for k in range(n)", Ecart=sqrt(V) suffit.

Ensuite, tu ne retournes que l'écart-type alors que l'énoncé demande les 3 valeurs. Donc, de base, c'est return E,V,Ecart.

Enfin, l'énoncé demande dans la question 5 de faire les calculs pour la variable Y, qui comporte 4 éléments.

Alors rectifie et teste.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Initialise V et Ecart

La racine carrée s'écrit : ...... = math.sqrt(....) mais tu dois avoir mis plus haut : import math

ou bien ....**0.5 sans importation.

 

Si tu ne veux pas que le calcul de l'écart se répète, tu dois le sortir de la boucle en supprimant une indentation.

    E = 0
    V = 0
    Ecart = 0
    for k in range(n):
        E=E+(liste_x[k])*(liste_proba[k])
    for k in range(n):
        V=V+liste_proba[k] *(liste_x[k]-E)**2
    Ecart = (V)**0.5
    return E,V,Ecart

 

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Re-bonjour,

Désolé pour l'oubli du math.sqrt et du V=0. Je les avais mis dans le script que j'ai testé, mais je les ai oublié ensuite.. Par contre, il est inutile d'initialiser Ecart puisque cette valeur est calculée à partir de V. Ce n'est pas la même chose que pour les deux sommes précédentes où il faut impérativement donner une valeur initiale aux variables avant de les introduire dans la boucle.

Cela dit, tu as exécuté le script pour la variable Y et tu as vérifié les résultats à la calculette ?

D'autre part, il reste la question 6.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

@Clémence :

Lorsque tu nous mets un script sur le forum sous forme de capture d'écran, c'est une image et si on veut y apporter des modifications, on est obligé de tout retaper.

Prends l'habitude de le mettre entre les balises "code", c'est à dire qu'au moment de la rédaction, tu cliques sur l'icône <  > et tu fais un copié-collé dans la fenêtre qui s'ouvre.

 

Ainsi nous n'avons plus qu'à faire un copié pour l'intégrer dans notre éditeur Python.

Lien vers le commentaire
Partager sur d’autres sites

Ah d'accord, bien sur ! 

def indicateur_var(n):
    liste_x=[]
    liste_proba=[]
    for i in range (n):
        a=float(input("saisir la valeur de Xi"))
        liste_x.append(a)
        b=float(input("saisir la probabilité Pi"))
        liste_proba.append(b)
    E=0
    V=0
    Ecart=0
    for k in range(n):
        E=E+(liste_x[k])*(liste_proba[k])
    for k in range(n):
        V= V+(liste_proba[k]) *(liste_x[k]-E)**2
        Ecart=math.sqrt(V)
    return E,V,Ecart       
        
print(indicateur_var(4))

C'est bon, j'ai trouvé la question 5 et j'ai verifié à la calculatrice

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

En mettant tout en 1/15è ce serait plus facile. C'est plus rapide d'entrer des 2 et des 3.

Tu entres les numérateurs lorsque l'on te demande la proba et dans le script tu divises au bon endroit par 15.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Tu mets tout en 15 èmes. C'est ce que j'ai trouvé de plus rapide.

 

    for k in range(n):
        E=E+(liste_x[k])*(liste_proba[k])/15
        
    for k in range(n):
        V=V+liste_proba[k] *(liste_x[k]-E)**2 /15
    Ecart = math.sqrt(V)
    return E,V,Ecart

Tu rentres uniquement les numérateurs des probas.

Lien vers le commentaire
Partager sur d’autres sites

  • E-Bahut

Bonsoir à vous deux,

Juste ce qui me chiffonne, c'est que, contrairement à ce qui est demandé, on ne reprend pas simplement le script établi à la question 5. On demande de "reprendre le script", pas de l'adapter au nouveau contexte. Pour moi, ce qu'on attendait, c'était des entrées de probabilités sous forme décimale, quitte à "tronquer" les 2/15 sous la forme 0,133.

Mais ce que j'en dis...

Lien vers le commentaire
Partager sur d’autres sites

Je n'y arrive pas 

def indicateur_var(n):
    liste_x=[]
    liste_proba=[]
    for i in range (n):
        a=float(input("saisir la valeur de Xi"))
        liste_x.append(a)
        b=float(input("saisir la probabilité Pi"))
        liste_proba.append(b)
    E=0
    V=0
    Ecart=0
    for k in range(n):
        E=E+(liste_x[k])*(liste_proba[k])/15
    for k in range(n):
        V= V+(liste_proba[k]) *(liste_x[k]-E)**2/15
        Ecart=math.sqrt(V)
    return E,V,Ecart       
        
print(indicateur_var(6))
        
        

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement

×
×
  • Créer...
spam filtering
spam filtering