Ich habe eine Sammlung von n Fließkommawerten: x[n]
. Als ich die Meanvalue und Standardabweichung berechnet werden soll, muss ich mit zwei Schleifen über alle Werte iterieren:Gibt es eine Approximation, um den Mittelwert und die Standardabweichung in einer Schleife zu erhalten
Erste Schleife alle Werte zu summieren und die Meanvalue berechnen:
sum = 0
for(i=0; i<n; i++)
sum += x[i]
mean = sum/n
In einer zweiten Schleife I berechnen die Standardabweichung:
sum = 0
for(i=0; i<n; i++)
sum += pow2(x[i] - mean)
sder = sqrt(sum/n)
ich bin mir bewusst, dass Sie diese Komplexität nicht reduzieren können, wenn Sie auf die exakten Werte für Meanvalue und Standardabweichung wollen. Aber gibt es eine Möglichkeit, sie in weniger Zeit zu berechnen, wenn Sie nur annähern? In einer Schleife bevorzugt.
Was Sie dort haben, ist O (n). Meinst du, du willst es in einem Durchgang machen? – SirGuy
ja ich meine das. Ich werde die Frage bearbeiten – RomCoo
O (2n) ist O (n). Wenn Sie eine große O-Notation verwenden, wenn Sie konstante Faktorverbesserungen wünschen, denken Sie wahrscheinlich darüber falsch. – user2357112