简介
在本实验中,你将学习如何用 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()来计算标准差。 - 标准差是方差的平方根。
main函数现在打印所有三个统计量。- 我们继续使用
-lm标志来链接数学库。
总结
在本实验中,你首先学习了如何用 C 语言计算数据集的均值。均值是一种基本的统计量,代表一组数字的平均值。然后,你扩展了程序,通过对与均值的偏差平方求和来计算方差。方差衡量的是数据集中数字的离散程度。最后,你学习了如何对方差取平方根来计算标准差并打印结果。



