【封装】Deviation求方差

来源:互联网 发布:最简单的hash算法 编辑:程序博客网 时间:2024/05/16 04:45
import java.util.Objects;/** * Created by guan on 11/1/16. */public class Deviation {    /**     * 传统的利用平均数求方差的方法,需要遍历数组两次     * @param a 目标数组     * @return 方差     */    public static double ComputeVariance(double a[]) {        double variance = 0;//方差        double average = 0;//平均数        int i, len = a.length;        double sum = 0, sum2 = 0;        for (i = 0; i < len; i++) {            sum += a[i];        }        average = sum / len;        for (i = 0; i < len; i++) {            sum2 += (a[i] - average) * (a[i] - average);        }        variance = sum2 / len;        return variance;    }    /**     * 只遍历数组一次求方差,利用公式DX^2=EX^2-(EX)^2     *     * @param a     * @return     */    public static double ComputeVariance2(double a[]) {        double variance = 0;//方差        double sum = 0, sum2 = 0;        int i = 0, len = a.length;        for (; i < len; i++) {            sum += a[i];            sum2 += a[i] * a[i];        }        variance = sum2 / len - (sum / len) * (sum / len);        return variance;    }    /**     * 只遍历数组一次求方差,利用公式DX^2=EX^2-(EX)^2     *     * @param a     * @return     */    public static double ComputeVariance2(Object a[]) {        double[] b = new double[a.length];        for (int i = 0; i < a.length; i++) {            b[i] = (double) a[i];        }        return ComputeVariance2(b);    }}

抓住Demo一只

为了方便以后调用,本人已经将上述方法封装到了.aar文件中。以后调用时,只需要导入第三方包即可。
说明:基于

https://github.com/shanxu100/GUtils

欢迎大家补充交流。

0 0
原创粉丝点击