소스 데이터 :C#에서 내 분산 기능은 정확한 값을 반환하지 않습니다
가static double[] felix = new double[] { 0.003027523, 0.002012256, -0.001369238, -0.001737660, -0.001647287,
0.000275154, 0.002017238, 0.001372621, 0.000274148, -0.000913576, 0.001920263, 0.001186456, -0.000364631,
0.000638337, 0.000182266, -0.001275626, -0.000821093, 0.001186998, -0.000455996, -0.000547445, -0.000182582,
-0.000547845, 0.001279006, 0.000456204, 0.000000000, -0.001550388, 0.001552795, 0.000729594, -0.000455664,
-0.002188184, 0.000639620, 0.000091316, 0.001552228, -0.001002826, 0.000182515, -0.000091241, -0.000821243,
-0.002009132, 0.000000000, 0.000823572, 0.001920088, -0.001368863, 0.000000000, 0.002101800, 0.001094291,
0.001639643, 0.002637323, 0.000000000, -0.000172336, -0.000462665, -0.000136141 };
분산 기능 :
public static double Variance(double[] x)
{
if (x.Length == 0)
return 0;
double sumX = 0;
double sumXsquared = 0;
double varianceX = 0;
int dataLength = x.Length;
for (int i = 0; i < dataLength; i++)
{
sumX += x[i];
sumXsquared += x[i] * x[i];
}
varianceX = (sumXsquared/dataLength) - ((sumX/dataLength) * (sumX/dataLength));
return varianceX;
}
Excel 및 일부 온라인 계산기 분산이 1.56562E-06 동안 말한다 내 기능은 나에게 1.53492394804015E-06을 준다. 나는 C#에 정확성 문제가 있는지 의심 스럽다. 전에 이런 종류의 문제가있는 사람이 있습니까?
좋은 답변입니다! ! ! –
잘 주셔서 감사합니다! – dkackman