標準偏差を計算する CPP プログラム

C++Beginner
オンラインで実践に進む

はじめに

この実験では、関数を使って一連の数値の標準偏差を計算するための C++ プログラムを書く方法を学びます。このプログラムは、平均からの二乗差の平均である一連の数値の分散をどのように計算するかを示し、その平方根が標準偏差を与えます。

標準偏差を計算する関数を定義する

まず、浮動小数点数の配列を受け取り、それらの値の標準偏差を返す関数を定義します。

float SD(float values[]) // 標準偏差を計算する関数
{
    float sum = 0.0, mean, sd = 0.0;

    int i;
    for(i = 0; i < 10; ++i)
    {
        sum = sum + values[i]; // 合計を計算
    }
    mean = sum/10; // 平均を求める
    for(i = 0; i < 10; ++i)
        sd = sd + pow(values[i] - mean, 2); // 標準偏差を計算
    return sqrt(sd / 10);
}

この関数では、まずすべての値の合計を計算します。次に、合計を値の総数で割って平均を求めます。次に、各値の平均からの二乗差を合計することで分散を計算します。その後、分散の平方根をとることで標準偏差を計算します。

入力を読み取り、結果を出力するメイン関数を書く

次に、ユーザーからの入力を読み取り、値を配列に格納し、「SD」関数を呼び出して標準偏差を取得し、その後結果を表示する「main」関数を書きます。

int main()
{
    int i;
    float arr[10];
    cout << "Enter 10 elements: ";
    for(i = 0; i < 10; ++i)
        cin >> arr[i];
    cout << endl << "Standard Deviation = " << SD(arr); // 関数を呼び出す
    return 0;
}

この関数では、まずユーザーの入力を格納するための配列「arr」を宣言します。次に、ユーザーに 10 個の値を 1 つずつ入力するように促します。その後、「arr」配列を使って「SD」関数を呼び出して標準偏差を取得し、コンソールに出力します。

プログラムを実行する

ここで、ターミナルで次のコマンドを使ってプログラムをコンパイルして実行できます。

g++ ~/project/main.cpp -o main && ./main

このコマンドは、~/project ディレクトリ内の main.cpp ファイルをコンパイルし、その後生成された実行可能ファイルを実行します。

出力を検証する

入力として 4 5 7 8 9 6 3 2 1 7 を入力し、正しい出力が得られるかどうか確認しましょう。

Enter 10 elements: 4 5 7 8 9 6 3 2 1 7

Standard Deviation = 2.5219

標準偏差が 2.5219 であることがわかります。これは、手計算で問題を解いたときに得た値と同じです。

完全なコード

参照のため、main.cpp ファイルの完全なコードを以下に示します。

#include <iostream>
#include <cmath>
using namespace std;

float SD(float values[]) // 標準偏差を計算する関数
{
    float sum = 0.0, mean, sd = 0.0;

    int i;
    for(i = 0; i < 10; ++i)
    {
        sum = sum + values[i]; // 合計を計算
    }
    mean = sum/10; // 平均を求める
    for(i = 0; i < 10; ++i)
        sd = sd + pow(values[i] - mean, 2); // 標準偏差を計算
    return sqrt(sd / 10);
}

int main()
{
    int i;
    float arr[10];
    cout << "Enter 10 elements: ";
    for(i = 0; i < 10; ++i)
        cin >> arr[i];
    cout << endl << "Standard Deviation = " << SD(arr); // 関数を呼び出す
    return 0;
}

まとめ

この実験では、C++ プログラム内の関数を使って一連の数値の標準偏差を計算する方法を学びました。分散(平均からの二乗差の平均)を計算するための関数を使い、その平方根を求めて標準偏差を算出しました。また、ユーザーからの入力を読み取り、配列に格納し、その後関数を呼び出して標準偏差を取得する方法も学びました。最後に、正しい出力が得られることを確認するためにプログラムをコンパイルして実行しました。