• 正态分布折线图/直方图相关方法以及概念


    最近在做正态分布相关图像是遇到的很多问题

    最主要的是以前的很多知识点都忘掉了

      方差:各个数据与平均数之差平方和的平均值

      标准差:方差的算数平方根

    柱状图步骤:

      1.找出最大值和最小值

      2.分组(可计算也可自己设定一个值)

      3.计算组距宽度(组数去除最大值与最小值之差)

      4.计算每一组的起始值(第一组初值为最小值减去最小测定单位的一半,末值为初值加组距)

    /**

    * 计算平均数
    *
    * @param array
    * @return
    */
    public static double getAverage(double[] array) {
    double sum = 0;
    if (array != null && array.length > 0) {
    int num = array.length;
    for (int i = 0; i < num; i++) {
    sum += array[i];

    }
    return (double) (sum / num);
    } else {
    return 0d;
    }

    }

    /**
    * 计算标准差
    *
    * @param array
    * @param average
    * @return
    */
    public static double getStandardDevition(double[] array, double average) {
    double sum = 0;
    if (array != null && array.length > 0) {
    int num = array.length;
    for (int i = 0; i < num; i++) {
    sum += Math.sqrt(((double) array[i] - average) * (array[i] - average));
    }
    return (sum / (num - 1));
    } else {
    return 0d;
    }

    }

    /**
    * 计算正态值
    *
    * @param randomNumber
    * @param average
    * @param standardDevition
    * @return
    */
    public static double getNormality(double randomNumber, double average, double standardDevition) {
    double y = (randomNumber - average) / standardDevition;
    double coefficient = 1 / (Math.sqrt(2 * Math.PI) * standardDevition);
    double z = Math.exp(-0.5 * y * y) * coefficient;
    return z;
    }
    }

    /**
    * 对double数组进行降序排
    *
    * @param array
    * @return
    */
    public static double[] downSort(double[] array) {
    for (int i = 0; i < array.length - 1; i++) { // 最多做n-1趟排序
    for (int j = 0; j < array.length - i - 1; j++) { // 对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
    if (array[j] < array[j + 1]) { // 把小的值交换到后面
    double temp = array[j];
    array[j] = array[j + 1];
    array[j + 1] = temp;
    }
    }
    }
    return array;
    }

    /**
    * 返回某个区间的数出现的次数
    *
    * @param array
    * @param ele
    * @return
    */
    public static int inCounts(double[] array, BigDecimal leftEle, BigDecimal rightEle) {
    int count = 0;
    for (int i = 0; i < array.length; i++) {
    double ele = array[i];
    BigDecimal eleBd = new BigDecimal(ele + "");
    if ((eleBd.compareTo(leftEle) == 1 || eleBd.compareTo(leftEle) == 0) && eleBd.compareTo(rightEle) == -1) {
    count++;
    }
    }
    return count;
    }

  • 相关阅读:
    作业十三
    作业十二
    第十一次作业
    编译原理第十次作业
    P3388 【模板】割点(割顶) 题解 (Tarjan)
    BuaacodingT141 microhhh的回城 题解(模拟)
    P2055 [ZJOI2009]假期的宿舍 题解(二分图)
    P2764 最小路径覆盖问题 题解(二分图)
    2019.2-2019.3 TO-DO LIST
    P3369 【模板】普通平衡树 题解(Splay/FHQ)
  • 原文地址:https://www.cnblogs.com/gosun/p/6803002.html
Copyright © 2020-2023  润新知