2
J'utilise le code suivant pour calculer l'écart-type:C++ calcul de l'écart-type incorrect en utilisant std :: s'accumuler
std::vector<float> k = {4,6,2};
float mean = 4;
float sum = std::accumulate(k.begin(), k.end(), 0, [&mean](float x, float y) {
return (y - mean) * (y - mean);
});
float variance = sum/k.size();
float stdev = sqrt(variance);
std::accumulate
retours 4
quand il doit retourner:
(4-4)^2 + (6-4)^2 + (2-4)^2 = 8
En outre, l'impression (y - mean) * (y - mean)
donne :
0
4
4
Alors, pourquoi ne renvoie-t-il pas 0 + 4 + 4
?
Alors, voilà pourquoi il est revenu en fait que la dernière valeur. Merci beaucoup – DimChtz