Optimisation de l'écart-type de longueur en réutilisant la moyenne calculée

This commit is contained in:
rabot
2026-10-07 11:39:55 +02:00
parent be387e2066
commit d3f19871d7
5 changed files with 232 additions and 3 deletions
+4 -3
View File
@@ -331,11 +331,12 @@ double longueur_moyenne(const Entree *table, int n)
return (double)total / n;
}
double ecart_type_longueur(const Entree *table, int n)
/* Réutiliser la moyenne calculée dans main évite de la recalculer par mot. */
double ecart_type_longueur(const Entree *table, int n, double moyenne)
{
double somme = 0.0;
for (int i = 0; i < n; i++) {
double ecart = longueur(table[i].mot) - longueur_moyenne(table, n);
double ecart = longueur(table[i].mot) - moyenne;
somme += ecart * ecart;
}
return somme / n; /* variance ; la racine est prise dans main */
@@ -435,7 +436,7 @@ int main(void)
trier_entrees(table, nb_entrees);
double moyenne = longueur_moyenne(table, nb_entrees);
double ecart_type = racine(ecart_type_longueur(table, nb_entrees));
double ecart_type = racine(ecart_type_longueur(table, nb_entrees, moyenne));
char trigramme[4];
int occ_trigramme;