少し頭をかきむしるのに役立つことを願っています。
標準偏差を計算するテンプレート クラスを作成しました。
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 桁までしか返されないことを除けば、これはすべて正しく行われているようです。誰でもこの理由を提案できますか? 私は困惑しています!