Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme python

Posté par
lalaland265
21-03-21 à 15:41

Bonjour, mon enfant de seconde a un exercice sur algorithme python mais je ne comprends pas tout.  
il y a une liste M= [2,7,8,6,2,3,9,11,12,7,9,1.2] . il a déjà trouvé un script pour trouver la moyenne qui est :
def moyenne(L):
      n=len(L)
      s=0          
      for i in range(n):
      s=s+L[i]
     m=s/n
     return m

Maintenant il doit écrire un algorithme pour trouver l'ecart type de cette liste.
Voici la consigne "En utilisant la fonction précédente, écrire une fonction 'ecart_type' qui calcule l'écart-type des valeurs d'une liste de nombres L." C'est ici qu'il bloque un peu..
Pouvez vous nous aidez s'il vous plait ?

Posté par
mathafou Moderateur
re : Algorithme python 21-03-21 à 16:36

Bonjour,

comment est fait le calcul dans cet algorithme ?

comment doit on calculer un écart type, définition ?

et donc comment modifier l'algorithme ?
(quelles lignes et quels calculs faut il ajouter ?)

Nota :
pour mettre une copie d'algorithme ici il vaut mieux le mettre entre les balises [code] et [/code], générées par le bouton
Algorithme python

ça permet de conserver l'indentation exacte , fondamentale en Python.

def moyenne(L):
    n=len(L)
    s=0          
    for i in range(n):
        s=s+L[i]
    m=s/n
    return m

Posté par
pseudodk
re : Algorithme python 26-03-21 à 20:59

Il est indiqué de construire une liste des carrés des élément de la liste L avant de définir  la fonction 'ecart_type'

Posté par
mathafou Moderateur
re : Algorithme python 27-03-21 à 09:40

on peut

ou on peut aussi écrire une seule fonction qui fait tout d'un coup en lisant une seule foi la liste L

plutôt que de finalement balayer trois fois une liste comme cet "indice" le propose :
une fois pour calculer la moyenne (la fonction moyenne(L) telle qu'elle est)
une deuxième fois pour créer une liste des carrés
et une troisième fois pour calculer la somme de cette nouvelle liste et finalement l'écart type
quel gâchis ...

mais de toute façon quelle que soit la méthode retenue,
propose quelque chose et commence à écrire au moins des morceaux d'algorithmes !!!

on ne va pas faire le travail à ta place d'écrire tes boucles "for" et tes calculs, traduction directe des formules de l'écart type !

un début :

def liste_carres(L):
   L2 = [] # liste vide au départ
   for ... in ... : # balaye la liste L
       L2.append ...  # met l'élément au carré dans la liste L2
   return L2


et il faudra faire une troisième fonction écart_type(...) qui calcule l'écart type à parti de la moyenne et de la liste des carrés
(c'est à dire qui appelle les deux fonctions précédentes pour en utiliser le résultat)

Posté par
carpediem
re : Algorithme python 27-03-21 à 09:51

salut

mathafou : à ce stade on se fout un peu de l'efficacité, ici l'objectif de l'exo est de faire de l'algo ... (en seconde on en est au b-a-ba ... et on y reste malheureusement même en terminale ...)

1/ dans tous les cas pur calculer l'écart type il faut d'abord calculer ... ?

2/ dans le cas où la formule de Koenig est connue alors le calcul de ... peut utiliser la fonction moyenne (appliquée à la bonne série comme le dit mathafou )

3/ le calcul de .... puis de l'écart type est alors immédiat ...

Posté par
mathafou Moderateur
re : Algorithme python 27-03-21 à 10:59

l'indice demandant de calculer séparément une liste des carrés ... bein ...

on ne peut pas utiliser la simple définition \sum(x_i-m)^2 vu qu'on a les x_i^2 !!
on est donc amené à calculer (\sum x_i^2) - m^2
(la formule de Koenig)

sans cette formule, faire la liste des carrés comme demandé serait totalement inutile !

de toute façon je n'ai pas demandé d'optimiser !
j'ai bien donné comme départ ce qui est demandé avec trois fonctions et toutes ces listes etc ...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !