標準偏差を計算する

C:\DATA\Java2\Dos>java Hensa
データを入力して下さい(-1 で終了) : 1
データを入力して下さい(-1 で終了) : 2
データを入力して下さい(-1 で終了) : 3
データを入力して下さい(-1 で終了) : 4
データを入力して下さい(-1 で終了) : 5
データを入力して下さい(-1 で終了) : -1
データ件数=5.0    合計=15.0    平均=3.0
分散=2.0   標準偏差=1.4142135623730951
 -- Press any key to exit (Input "c" to continue) --

コンソールからデータを入力して分散と標準偏差を計算します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして Hensa.java の名前で保存して下さい。
        // 標準偏差を求める     前田 稔
        import java.io.*;
        import java.lang.*;
    
        class Hensa
        {   public static void main(String args[])
            {   BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
                String str;
                double sum,sumx2,n,v,ave,bunsan;
    
                sum=sumx2= 0;
                try
                {   for(n=0; ; n++)
                    {   System.out.print("データを入力して下さい(-1 で終了) : ");
                        str = input.readLine();
                        v= Double.parseDouble(str.trim());
                        if (v<0)    break;
                        sum+= v;
                        sumx2+= v*v;
                    }
                    ave= sum/n;
                    bunsan= sumx2/n - ave*ave;
                    System.out.println("データ件数=" + n + "    合計=" + sum + "    平均=" + ave);
                    System.out.println("分散=" + bunsan + "   標準偏差=" + Math.sqrt(bunsan));
                }
                catch(IOException e)
                {   System.out.println("Exception : " + e);
                }
            }
        }
        
  2. Hensa.java をコンパイルして class オブジェクトを実行して下さい。
    コンパイルの詳細は Java を動かす を参照して下さい。
  3. 「1,2,3,4,5,-1」をタイプ入力したとき、ページ先頭の画面が表示されたら完成です。

プログラムの説明



この式をそのまま計算しようとすると入力された全てのデータを保存しておかなければなりません。
今回のようにコンソールからデータを入力する場合は式を変形して次の手順で計算します。
【例】
  1  2  3  4  5   件数=5  平均=3
  1  4  9 16 25   自乗の合計=55
  分散= 55/5 − 3*3= 11−9 = 2
  標準偏差= √分散= √2=  1.4142


大学受験などで使われる「偏差値」は平均を50点に、標準偏差を10点に調整して各個人の成績を点数で表したものです。
偏差値と各個人がどのぐらいの成績かの目安は次のようになります。


  1. コンソールから文字列をタイプ入力するので java.io.*; をインポートして下さい。
    try と catch 及び str.trim() の説明は コンソールから数値を入力する を参照して下さい。
  2. 平方根を計算するので java.lang.* をインポートします。
    平方根の計算は 正多角形で円周率を求める を参照して下さい。
  3. プログラムで使用する領域は double タイプで定義して下さい。
    double タイプの説明は Java で良く使う変数 を参照して下さい。
    タイプ入力した文字列を double 型に変換して格納するコードです。
          String str;
          double v,ave,bunsan;
    
          str = input.readLine();
          v= Double.parseDouble(str.trim());
        

超初心者のプログラム入門(Java2)