簡體   English   中英

如何獲得此數組的標准偏差

[英]How to get the Standard deviation of this array

好的,所以我有一段代碼來獲取最多包含50個元素的數組的均值,我還想找到那些元素的標准差,並在顯示均值的位置正確顯示它,到目前為止,我的代碼是

import java.util.Scanner;

public class caArray
{
public static void main(String args[])
{
    Scanner input = new Scanner(System.in);
    System.out.println("How many numbers you want to calculate average upto 50 : ");

    int n = input.nextInt();
    int[] array = new int[50];
    int sum = 0;


    for (int m = 0; m < n; m++)
    {
        System.out.print("Number " + m + " : ");
        array[m] = input.nextInt();
    }


    for (int m = 0; m < n; m++)
    {
        sum = array[m] + sum;
    }


    {
        System.out.println("Total value of Numbers = " + sum);
    }


    {
        double avg;
        avg = sum / array.length;
        System.out.println("Average of Numbers = " + avg);  //calculate average value
    }
}
}

我需要將其添加到一個程序中以獲得標准偏差

編輯**我無法使用這些功能,因為我不得不在程序本身中使用標准偏差Fourmula

您可以用3種方法編寫它

private double standardDeviation(double[] input) {
    return Math.sqrt(variance(input));
}

private double variance(double[] input) {
    double expectedVal = expectedValue(input);
    double variance = 0;
    for(int i = 0;i<input.length;++i) {
        double buffer = input[i] - expectedVal;
        variance += buffer * buffer;
    }
    return variance;
}

private double expectedValue(double[] input) {
    double sum = 0;
    for(int i = 0;i<input.length;++i) {
        sum += input[i];
    }
    return sum/input.length;
}

希望它能起作用,如果我以正確的方式使用公式的話,我對此並不十分了解。

但基本上您的計算中有這3個數學公式

如果您不必自己編寫,請查看Apache Commons Math 統計文檔參考了如何得出標准差

由於您必須自己編寫,因此檢出DescriptiveStatistics 的源代碼可能是有啟發性的(查找功能getStandardDeviation()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM