Введение
В этом лабораторном занятии вы научитесь вычислять стандартное отклонение набора данных на языке программирования C. В рамках лабораторной работы рассматриваются три основные стадии: вычисление среднего значения набора данных, суммирование квадратов отклонений от среднего для вычисления дисперсии и затем извлечение квадратного корня для получения стандартного отклонения. По завершении этого лабораторного занятия вы будете хорошо понимать эти фундаментальные статистические концепции и способ реализации их на языке C.
В лабораторной работе приведены пошаговые инструкции и примеры кода, которые помогут вам пройти весь процесс. Вы начнете с написания программы на языке C для вычисления среднего значения заданного набора данных, а затем расширите программу для вычисления дисперсии путем суммирования квадратов отклонений от среднего. Наконец, вы извлечете квадратный корень из дисперсии, чтобы определить стандартное отклонение, и выведете результат.
Вычисление среднего значения набора данных
На этом этапе вы научитесь вычислять среднее значение набора данных на языке программирования C. Среднее значение - это фундаментальная статистическая мера, представляющая среднее значение набора чисел.
Сначала создадим программу на языке C для вычисления среднего значения набора данных. Откройте новый файл с помощью nano:
cd ~/project
nano mean_calculation.c
Теперь введите следующий код:
#include <stdio.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;
}
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);
printf("Mean of the dataset: %.2f\n", mean);
return 0;
}
Скомпилируйте программу:
gcc mean_calculation.c -o mean_calculation
Запустите программу и введите некоторые примеры данных:
./mean_calculation
Пример вывода:
Enter the number of elements (max 100): 5
Enter 5 integers:
10
20
30
40
50
Mean of the dataset: 30.00
Разберем код:
- Мы определяем функцию
calculateMean, которая принимает массив и его размер в качестве параметров. - Функция вычисляет сумму всех элементов массива.
- Среднее значение вычисляется путем деления суммы на общее количество элементов.
- В функции
mainмы просим пользователя ввести набор данных. - Мы вызываем функцию
calculateMeanи выводим результат с двумя знаками после запятой.
Суммирование квадратов отклонений и вычисление дисперсии
На этом этапе вы расширите предыдущую программу для вычисления дисперсии путем суммирования квадратов отклонений от среднего значения. Дисперсия измеряет, насколько разбросаны числа в наборе данных.
Откройте предыдущий файл для изменения:
cd ~/project
nano mean_calculation.c
Обновите программу с добавлением вычисления дисперсии:
#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;
}
Скомпилируйте обновленную программу:
gcc mean_calculation.c -o mean_calculation -lm
Запустите программу и введите пример данных:
./mean_calculation
Пример вывода:
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
Основные моменты в коде:
- Мы добавили новую функцию
calculateVariance, которая принимает массив, размер и среднее значение. - Функция вычисляет отклонение каждого элемента от среднего значения.
- Она возводит эти отклонения в квадрат и суммирует их.
- Дисперсия вычисляется путем деления суммы квадратов отклонений на количество элементов.
- При компиляции мы используем флаг
-lmдля подключения математической библиотеки.
Извлечение квадратного корня для вычисления стандартного отклонения и вывод результата
На этом последнем этапе вы завершите вычисление стандартного отклонения, извлекая квадратный корень из дисперсии. Стандартное отклонение является ключевой мерой разброса данных в статистическом анализе.
Откройте предыдущий файл для изменения:
cd ~/project
nano mean_calculation.c
Обновите программу с добавлением вычисления стандартного отклонения:
#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;
}
float calculateStandardDeviation(float variance) {
return sqrt(variance);
}
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);
float standardDeviation = calculateStandardDeviation(variance);
printf("Dataset Statistics:\n");
printf("Mean: %.2f\n", mean);
printf("Variance: %.2f\n", variance);
printf("Standard Deviation: %.2f\n", standardDeviation);
return 0;
}
Скомпилируйте обновленную программу:
gcc mean_calculation.c -o mean_calculation -lm
Запустите программу и введите пример данных:
./mean_calculation
Пример вывода:
Enter the number of elements (max 100): 5
Enter 5 integers:
10
20
30
40
50
Dataset Statistics:
Mean: 30.00
Variance: 200.00
Standard Deviation: 14.14
Основные моменты в коде:
- Мы добавили новую функцию
calculateStandardDeviation. - Эта функция использует функцию
sqrt()из математической библиотеки для вычисления стандартного отклонения. - Стандартное отклонение является квадратным корнем из дисперсии.
- Теперь главная функция выводит все три статистические меры.
- Мы продолжаем использовать флаг
-lmдля подключения математической библиотеки.
Резюме
В этом лабораторном занятии вы сначала научились вычислять среднее значение набора данных на языке программирования C. Среднее значение - это фундаментальная статистическая мера, представляющая среднее значение набора чисел. Затем вы расширили программу для вычисления дисперсии путем суммирования квадратов отклонений от среднего. Дисперсия измеряет, насколько разбросаны числа в наборе данных. Наконец, вы научились извлекать квадратный корень из дисперсии для вычисления стандартного отклонения и выводить результат.



