首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用常量内存计算方差/不使用数组

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

Stack Overflow用户
提问于 2020-10-27 10:31:53
回答 1查看 497关注 0票数 2

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

代码语言:javascript
复制
#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);
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-27 11:02:41

在循环中,您只需要计算和的平方值。然后再计算方差。

比如:

代码语言:javascript
复制
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;

注意:上面的代码不处理可能的溢出。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64552533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档