Hier geht es darum, das arithmetische Mittel der Rückgabewerte einer Funktion zu berechnen.Gibt es einen schnelleren Weg, um den Mittelwert von Funktionsergebnissen als Generieren/Akkumulieren zu berechnen?
Um einen Mittelwert von N
Funktion Anrufe zu bekommen, habe ich gedacht:
std::vector<double> results(N);
std::generate(results.begin(), results.end(), my_function(...));
double mean = std::accumulate(results.begin(), results.end(), 0.0)/N;
Gibt es einen Standard/moderne C++, wie es schneller zu machen oder den Zwischenvektor weglassen? Boost ist auch eine Option.
Das ist nicht der Durchschnitt, es ist der Durchschnitt, den Sie berechnen. Und dafür müssen Sie alle Werte summieren, es gibt keine Abkürzung (es sei denn, es ist akzeptabel mit einem ungefähren (und möglicherweise falschen) Wert). –
@JoachimPileborg Das ist die Definition des Mittelwerts. –
@JoachimPileborg Ein ** arithmetisches Mittel ** bedeutet Durchschnitt – NathanOliver