数学公式-方差

#include <stdio.h>
#include <math.h>

/*
 * 方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。
 *
 * 概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。
 *
 * 统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。
 * 不存在负数。
 *
 * 实际问题中,研究方差即偏离程度有着重要意义。
 *
 * 方差在任何情况下都是正数,协方差值可正可负。
 *
 * 协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差。
 * 而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
 *
 * 协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。
 * 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,
 * 另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。
 * 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,
 * 另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
 */

/**
 * variance - find variance.
 * @sample  : All samples
 * @sam_len : samples length
 */
float variance(int sample[], int sam_len)
{
    float all_sample_average = 0;
    float all_sample_sum = 0;
    int i = 0;

    for (i = 0; i < sam_len; i++) {
        all_sample_sum += sample[i];
    }

    all_sample_average = (float)(all_sample_sum / sam_len);        /* Average of all samples */

    all_sample_sum = 0;
    for (i = 0; i < sam_len; i++) {
        all_sample_sum += pow(sample[i] - all_sample_average, 2);
    }

    return all_sample_sum / sam_len;
}

int main()
{
    int var[5] = {1, 2, 3, 4, 5};

    printf("%lf\n", pow(2.0, 2));                    /* 4.000000 */
    printf("variance = %f\n", variance(var, 5));    /* 2.000000 */

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值