naja nicht ganz, ich habs so verstanden, dass er werte aufzeichnet und dann aufaddiert und durch die anzahl teilen will ?! DAS ist natürlich unperformant
mir geht es um den echten mittelwert und nicht um das arithmetische mittel wegen der extremwerte .. problematsich ist aber dass der übliche weg zur mittelwertbestimmung über nen sortieralgo geht und das frisst zeit
ihc hab ne lösung die die auflösung auf den verfügbaren speicher begrenzt
was ich meine ist z.B. ein array mit 100mal 1byte
und über dann den index zu arbeiten mit einer einfachen addition um zeit zu sparen, anschließend noch das array durchzählen und man hat seinen mittelwert
ich erkläre es nochmal mit code, der letze satz geht nur mit viel fantasie
ein 100er-array für eine angabe von 0-100 Liter ohne komma
Code:
unsigned char maray[100];
while(messen)
{
marray[getFüllstandInLiter()]++;
count++;
if(ausgabe) {
unsigned in mid = count/2;
for(int i = 0; i < 100; i++) {
count-=marray[i];
if(count < mid) {
print(mid);
clearArrayAndCounter();
}
}
}
}
Lesezeichen