gpt4 book ai didi

使用常量内存计算方差/不使用数组

转载 作者:行者123 更新时间:2023-12-05 09:37:10 25 4
gpt4 key购买 nike

我想知道是否有任何方法可以不将值存储在数组中 或其他东西来计算方差。我能够做到均值,也能够近似计算方差,但不是很准确。这是我使用的代码:

#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);
}

最佳答案

在循环中你只需要计算总和和平方和。然后计算方差。

喜欢:

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;

注意:上面的代码没有处理可能的溢出

关于使用常量内存计算方差/不使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64552533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com