2

私はここで非常に新しいです。現在、Javaで標準偏差を計算しようとしています(グーグルで検索しました)が、それを機能させるには多くの問題があります

ユーザーが入力した10個の値があり、これまでの理解の標準偏差を計算する必要があります。回答してくれた人々のおかげで、配列の平均を見つけて計算を完了します

                double two = total[2];
                double three = total[3];
                double four = total[3];
                double five = total[4];
                double six = total[6];
                double seven = total[7];
                double eight = total[8];
                double nine = total[9];
                double ten = total[10];

                double eleven = average_total;


mean = one + two + three + four + five + six + seven + eight + nine + ten + eleven;

mean = mean/11;
//one = one - mean;
//System.out.println("I really hope this prints out a value:" +one);
*/
 //eleven = average_total - mean;
 //eleven = Math.pow(average_total,average_total);
 //stand_dev = (one + two + three + four + five + six + seven + eight + nine + ten + eleven);
 //stand_dev = stand_dev - mean;
// stand_dev = (stand_dev - mean) * (stand_dev - mean);
// stand_dev = (stand_dev/11);
// stand_dev = Math.sqrt(stand_dev);

私はすでに10個の値の配列に格納されているデータを持っていますが、配列からデータを出力して、入力コードをここに格納することなく計算を行う方法がよくわかりません。

お時間をいただきありがとうございます。

4

5 に答える 5

2

これはどうもうまくいかないように見えるので、私はあなたの問題を解決しませんが、正しい方向に向けるための擬似コードを提供することで、あなたを少し助けようとします:

Loop over array i=1 to 10
    Add each element to some other variable Total
End of Loop

Average = Total / 10 (required for your std. dev. equation)

ここで、平均からの要素の距離を見つける必要があります。簡単

Loop over array i = 1 to 10
    Replace each element with its distance from Average Squared
    Add to some variable differenceTotal
End of Loop

次に、分子項と分母項があり、解は明らかです。うまくいけば、それはいくぶん明確で役に立ちました。

于 2013-08-22T20:56:25.470 に答える
1

これを試して

import java.io.IOException;

public class StandardDeviationCalc {
    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        double [] values = {9, 2, 5, 4, 12, 7, 8, 11, 9, 3, 7, 4, 12, 5, 4, 10,
                            9, 6, 9, 4 };   //change input values here
        double sum=0;
        double finalsum = 0;
        double average = 0;

        for( double i : values) {
            finalsum = (sum += i);
        }

        average = finalsum/(values.length);
        System.out.println("Average: "+ average);

        double sumX=0;
        double finalsumX=0;
        double[] x1_average = new double[2000];
        for (int i = 0; i<values.length; i++){
            double fvalue = (Math.pow((values[i] - average), 2));
            x1_average[i]= fvalue;
            System.out.println("test: "+ fvalue);
        }

        for(double i : x1_average) {
            finalsumX = (sumX += i);
        }

        Double AverageX = finalsumX/(values.length);
        System.out.println("E(X1-x1_average)^2/AverageX: "+ AverageX);
        double SquareRoot = Math.sqrt(AverageX);
        System.out.println("Standard Deviation: "+ SquareRoot);
    }
}

ユーザー入力を追加するなど、必要に応じて微調整できます。コードは大雑把です。これは宿題だと思います。自分のやり方でうまくやってみてください。それがあなたを助けることを願っています。

于 2013-08-22T22:18:38.033 に答える
0

何を試しましたか?...

たとえば、すべての値を出力するには、値をループする必要があります

for(int i = 0; i < yourArray.length; i++)
{
     System.out.println(yourArray[i]);
     // Add your code to calculate the values you need for standard dev
}
于 2013-08-22T20:54:35.593 に答える