Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得此阵列的标准偏差_Java_Arrays_Std - Fatal编程技术网

Java 如何获得此阵列的标准偏差

Java 如何获得此阵列的标准偏差,java,arrays,std,Java,Arrays,Std,好的,我有一个代码,用来得到一个数组的平均值,这个数组有多达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 numb

好的,我有一个代码,用来得到一个数组的平均值,这个数组有多达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
    }
}
}
import java.util.Scanner;
公务舱
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“您希望计算的平均值达到50的数字数量:”;
int n=input.nextInt();
int[]数组=新的int[50];
整数和=0;
对于(int m=0;m
我需要加进去,得到一个程序中的标准偏差


编辑**我不能使用这些函数,因为我实际上必须在程序本身中使用标准偏差公式

如果您不必自己编写,请查看。参考文献说明了如何推导


由于您必须自己编写,检查DescriptiveStatistics可能会很有帮助(查找函数
getStandardDeviation()

您可以用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;
}
专用双标准偏差(双[]输入){
返回数学sqrt(方差(输入));
}
私人双方差(双[]输入){
双期望值=期望值(输入);
双方差=0;

对于(int i=0;iI必须自己编写,很遗憾,我不能使用这些函数,因为我实际上必须在程序中使用标准偏差公式。很好,你想要数组的标准偏差。但是你有没有尝试过将SD公式转换成java代码?很容易实现,如果你不要求性能,就直接使用它,你还需要每个数字的概率来计算任何东西,我不能使用这些函数,因为我实际上必须在程序中使用标准差四次公式,只要这样做:)计算元素的平方距离的平均值与它们的平均值的平方比。