0

わかりましたので、最大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
    }
}
}

1つのプログラムの標準偏差を取得するには、これに追加する必要があります

編集** プログラム自体で標準偏差フォーミュラを実際に使用する必要があるため、関数を使用できません

4

2 に答える 2

1

あなたはそれを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つの数式を持っています

于 2012-12-12T15:41:55.657 に答える
0

自分で書く必要がない場合は、Apache Commons Mathを調べてください。統計のドキュメントは、標準偏差の導出方法を参照しています。

自分で記述しなければならないので、おそらく DescriptiveStatisticsのソース コードをチェックアウトすると参考になります ( function を探しますgetStandardDeviation()) 。

于 2012-12-12T15:20:19.460 に答える