' P '

whatever I will forget

Java 標準偏差の求め方

Javaって標準偏差のライブラリないんですね。。
Cみたく自作するしかないのか!

onlinejudge.u-aizu.ac.jp

求め方

下記参考サイトをそのまま引用させて頂きます。

1.データ全体の平均値を出す

2.偏差(各データから平均値を差し引いた値)を求める

3.2で算出した偏差を2乗する

4.3で出した偏差の合計を出す

5.偏差の合計をデータの総数で割って分散を求める

6.5で出した分散の正の平方根を求めて標準偏差を算出する

参考

kotodori.jp

stackoverflow.com

サンプル

import java.util.Scanner;

public class Main151 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while(true) {
            int n = sc.nextInt();
            if(n == 0) {
                break;
            }

            double[] score = new double[n];

            double sum = 0.0;
            for(int i=0; i<n; i++) {
                score[i] = sc.nextDouble();
                sum += score[i];
            }

            double average = sum / n;

            double deviationSum = 0.0;
            for(int i=0; i<n; i++) {
                deviationSum += Math.pow(score[i]-average, 2);
            }

            double variance = deviationSum / n;

            //Standard Deviation
            System.out.println(String.format("%.9f",Math.sqrt(variance)));
        }
        sc.close();
    }
}