Calculer la variance en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce lab (atelier), vous allez apprendre à calculer la variance d'un ensemble de nombres en C. Le lab couvre trois étapes principales : le calcul de la moyenne, le calcul de la somme des carrés des écarts par rapport à la moyenne et la division de cette somme par le nombre de valeurs pour obtenir la variance. Le lab fournit des exemples de code détaillés et des explications pour vous guider dans le processus de mise en œuvre de ces calculs statistiques en C.

Le lab commence par démontrer comment calculer la moyenne d'un ensemble de nombres, ce qui est une étape cruciale dans le calcul de la variance. Il montre ensuite comment calculer la somme des carrés des écarts par rapport à la moyenne et, enfin, comment diviser cette somme par le nombre de valeurs pour obtenir la variance. En suivant les instructions étape par étape, vous acquerrez une bonne compréhension de la façon d'effectuer ces opérations statistiques en utilisant le langage de programmation C.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c/ControlFlowGroup -.-> c/for_loop("For Loop") c/CompoundTypesGroup -.-> c/arrays("Arrays") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/for_loop -.-> lab-435167{{"Calculer la variance en C"}} c/arrays -.-> lab-435167{{"Calculer la variance en C"}} c/math_functions -.-> lab-435167{{"Calculer la variance en C"}} c/output -.-> lab-435167{{"Calculer la variance en C"}} end

Calculer la moyenne

Dans cette étape, vous allez apprendre à calculer la moyenne d'un ensemble de nombres en C. La moyenne est calculée en additionnant toutes les valeurs et en divisant le résultat par le nombre total de valeurs.

Tout d'abord, créez un nouveau fichier C pour implémenter le calcul de la moyenne :

cd ~/project
nano mean.c

Maintenant, écrivez le code C suivant pour calculer la moyenne :

#include <stdio.h>

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);
    int sum = 0;

    // Calculate sum of all numbers
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }

    // Calculate mean
    float mean = (float)sum / count;

    printf("Numbers: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\nCount: %d\n", count);
    printf("Sum: %d\n", sum);
    printf("Mean: %.2f\n", mean);

    return 0;
}

Compilez et exécutez le programme :

gcc mean.c -o mean
./mean

Exemple de sortie :

Numbers: 10 20 30 40 50
Count: 5
Sum: 150
Mean: 30.00

Décortiquons le code :

  • Nous définissons un tableau d'entiers numbers
  • Nous calculons le nombre de valeurs en utilisant sizeof()
  • Nous utilisons une boucle for pour calculer la somme de toutes les valeurs
  • Nous calculons la moyenne en divisant la somme par le nombre de valeurs
  • Nous affichons les valeurs, le nombre de valeurs, la somme et la moyenne

Somme (x - moyenne)² et division par le nombre de valeurs

Dans cette étape, vous allez apprendre à calculer la variance en calculant la somme des carrés des écarts par rapport à la moyenne et en divisant le résultat par le nombre de valeurs.

Tout d'abord, modifiez le fichier mean.c précédent pour inclure le calcul de la variance :

cd ~/project
nano variance.c

Écrivez le code C suivant pour calculer la variance :

#include <stdio.h>
#include <math.h>

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);
    int sum = 0;
    float mean, variance = 0.0;

    // Calculate sum and mean
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }
    mean = (float)sum / count;

    // Calculate sum of squared deviations
    for (int i = 0; i < count; i++) {
        variance += pow(numbers[i] - mean, 2);
    }

    // Divide by count to get variance
    variance /= count;

    printf("Numbers: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\nMean: %.2f\n", mean);
    printf("Variance: %.2f\n", variance);

    return 0;
}

Compilez et exécutez le programme avec la bibliothèque mathématique :

gcc variance.c -o variance -lm
./variance

Exemple de sortie :

Numbers: 10 20 30 40 50
Mean: 30.00
Variance: 200.00

Étapes clés dans le calcul de la variance :

  • Calculer la moyenne (étape précédente)
  • Soustraire la moyenne de chaque valeur
  • Élever au carré les écarts
  • Sommer les carrés des écarts
  • Diviser par le nombre de valeurs

Afficher la variance

Dans cette étape, vous allez apprendre à formater et à afficher le calcul de la variance avec différents niveaux de précision et à créer une fonction pour rendre le code plus modulaire.

Modifiez le fichier variance.c précédent pour améliorer l'affichage de la variance :

cd ~/project
nano variance_print.c

Écrivez le code C suivant pour améliorer la sortie de la variance :

#include <stdio.h>
#include <math.h>

// Function to calculate variance
float calculate_variance(int numbers[], int count) {
    int sum = 0;
    float mean, variance = 0.0;

    // Calculate sum and mean
    for (int i = 0; i < count; i++) {
        sum += numbers[i];
    }
    mean = (float)sum / count;

    // Calculate sum of squared deviations
    for (int i = 0; i < count; i++) {
        variance += pow(numbers[i] - mean, 2);
    }

    // Divide by count to get variance
    variance /= count;

    return variance;
}

// Function to print variance with different formats
void print_variance(float variance) {
    printf("Variance Representations:\n");
    printf("1. Standard Format:   %.2f\n", variance);
    printf("2. Scientific Notation: %e\n", variance);
    printf("3. Precise Format:    %.4f\n", variance);
}

int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int count = sizeof(numbers) / sizeof(numbers[0]);

    // Calculate and print variance
    float variance = calculate_variance(numbers, count);

    printf("Original Numbers: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n\n");

    print_variance(variance);

    return 0;
}

Compilez et exécutez le programme :

gcc variance_print.c -o variance_print -lm
./variance_print

Exemple de sortie :

Original Numbers: 10 20 30 40 50

Variance Representations:
1. Standard Format:   200.00
2. Scientific Notation: 2.000000e+02
3. Precise Format:    200.0000

Améliorations clés :

  • Création de fonctions distinctes pour le calcul de la variance
  • Ajout de plusieurs formats d'affichage de la variance
  • Mise en évidence de différentes manières de représenter la variance

Résumé

Dans ce lab (atelier), vous avez appris à calculer la moyenne d'un ensemble de nombres en C en additionnant toutes les valeurs et en divisant le résultat par le nombre total de valeurs. Vous avez ensuite appris à calculer la variance en calculant la somme des carrés des écarts par rapport à la moyenne et en divisant le résultat par le nombre de valeurs. Cela vous permet de mesurer la dispersion des données autour de la moyenne, ce qui est une mesure utile pour l'analyse statistique.