Summieren der quadrierten Abweichungen und Berechnung der Varianz
In diesem Schritt erweitern Sie das vorherige Programm, um die Varianz zu berechnen, indem Sie die quadrierten Abweichungen vom Mittelwert summieren. Die Varianz misst, wie weit die Zahlen in einem Datensatz voneinander entfernt sind.
Öffnen Sie die vorherige Datei zum Bearbeiten:
cd ~/project
nano mean_calculation.c
Aktualisieren Sie das Programm um die Varianzberechnung:
#include <stdio.h>
#include <math.h>
#define MAX_SIZE 100
float calculateMean(int arr[], int size) {
float sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum / size;
}
float calculateVariance(int arr[], int size, float mean) {
float sumSquaredDeviations = 0;
for (int i = 0; i < size; i++) {
float deviation = arr[i] - mean;
sumSquaredDeviations += deviation * deviation;
}
return sumSquaredDeviations / size;
}
int main() {
int dataset[MAX_SIZE];
int size;
printf("Enter the number of elements (max %d): ", MAX_SIZE);
scanf("%d", &size);
printf("Enter %d integers:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", &dataset[i]);
}
float mean = calculateMean(dataset, size);
float variance = calculateVariance(dataset, size, mean);
printf("Mean of the dataset: %.2f\n", mean);
printf("Variance of the dataset: %.2f\n", variance);
return 0;
}
Kompilieren Sie das aktualisierte Programm:
gcc mean_calculation.c -o mean_calculation -lm
Führen Sie das Programm aus und geben Sie Beispieldaten ein:
./mean_calculation
Beispielausgabe:
Enter the number of elements (max 100): 5
Enter 5 integers:
10
20
30
40
50
Mean of the dataset: 30.00
Variance of the dataset: 200.00
Wichtige Punkte im Code:
- Wir haben eine neue Funktion
calculateVariance
hinzugefügt, die das Array, die Größe und den Mittelwert als Parameter nimmt.
- Die Funktion berechnet die Abweichung jedes Elements vom Mittelwert.
- Sie quadriert diese Abweichungen und summiert sie auf.
- Die Varianz wird berechnet, indem die Summe der quadrierten Abweichungen durch die Anzahl der Elemente geteilt wird.
- Wir verwenden die Option
-lm
beim Kompilieren, um die Mathematikbibliothek (math library) einzubinden.