Грешка при пресметување на просек од низа
Ќе ја разгледаме грешката поврзана со пресметувањето на аритметичката средина од елементите на низа. Нека за пример ни е дадена следнава низа:
let arr = [1, 2, 3, 4, 5];
За да се најде просекот на елементите, треба да се најде нивниот збир и да се подели со бројот на елементи. Некој програмер веќе ја решил оваа задача на следниов начин:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
Ајде да ги разгледаме проблемите со ова решение. Технички, кодот работи правилно и дава точен одговор. Работата е што математички е коректно и да се подели целиот збир со количеството, и да се подели секој од поимите посебно со количеството.
Сепак, се појавува друг проблем. Работата е што ќе ја извршуваме операцијата делење онолку пати колку што има елементи во нашата низа. И излегува дека правиме голем број на непотребни операции, бидејќи делењето можеше да се изврши на крајот - еднаш, делејќи го целиот пронајден збир.
Ајде да го оптимизираме нашиот код:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);