4

少し頭をかきむしるのに役立つことを願っています。

標準偏差を計算するテンプレート クラスを作成しました。

template <class T>
double GetStandardDeviation(T* valueArray, int populationSize)
{
    double average;
    T cumulativeValue = 0;
    double cumulativeSquaredDeviation = 0;
    // calculate average
    for (int i = 0; i < populationSize; i++)
    {
        cumulativeValue += valueArray[i];
    }
    average = (double)cumulativeValue / (double)populationSize;
    // calculate S.D.
    for (int i = 0; i < populationSize; i++)
    {
        double difference = average - (double)valueArray[i];
        double squaredDifference = difference * difference;
        cumulativeSquaredDeviation += squaredDifference;
    }
    return cumulativeSquaredDeviation / (double)populationSize;

}

結果が小数点以下 5 桁までしか返されないことを除けば、これはすべて正しく行われているようです。誰でもこの理由を提案できますか? 私は困惑しています!

4

1 に答える 1