A tömb átlagának kiszámítási hibája
Vizsgáljunk meg egy hibát, amely a tömb elemeinek számtani középértékének meghatározásához kapcsolódik. Példaként legyen adott a következő tömb:
let arr = [1, 2, 3, 4, 5];
Az elemek átlagának megtalálásához meg kell találni az összegüket, és el kell osztani a számukkal. Egy programozó a következőképpen oldotta meg ezt a feladatot:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
Nézzük meg ennek a megoldásnak a problémáit. Technikailag a kód helyesen működik és a helyes választ adja. Az a helyzet, hogy matematikailag korrekt egyaránt a teljes összeg elosztása a számmal, mint az egyes tagok elosztása a számmal.
Azonban egy másik probléma merül fel. Az a helyzet, hogy annyiszor fogjuk elvégezni az osztást, ahány elem van a tömbben. És kiderül, hogy rengeteg felesleges műveletet végzünk, hiszen az osztást a végén is el lehetett volna végezni - egyszer, a teljes megtalált összeg elosztásával.
Optimalizáljuk a kódunkat:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);