我想知道是否有任何方法可以计算方差,而不必将值存储在数组或其他东西中。我能够做到这一点的平均值,并能够近似计算方差,但不是很准确。下面是我使用的代码:
#include <stdio.h>
#include <math.h>
int main()
{
int n, temp;
float sum = 0, crm = 0, var = 0;
printf("Enter number of elements : ");
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
printf("Enter number %d :", i + 1);
scanf("%d", &temp);
sum = sum + temp;
crm = sum / ((float)i + 1);
var = (var*i + (temp - crm) * (temp - crm) )/ ((float)i + 1);
}
printf("\naverage : %f,appprox variance : %f\n", sum / (float)n, var);
}发布于 2020-10-27 11:02:41
在循环中,您只需要计算和的平方值。然后再计算方差。
比如:
for (int i = 0; i < n; i++)
{
printf("Enter number %d :", i + 1);
scanf("%d", &temp);
sum = sum + temp;
ssum = ssum + temp * temp;
}
crm = sum / n;
var = ssum/n - crm * crm;注意:上面的代码不处理可能的溢出。
https://stackoverflow.com/questions/64552533
复制相似问题