Грешка у проналажењу просека низа
Размотрићемо грешку повезану са проналажењем аритметичке средине елемената низа. Нека је за пример дат овај низ:
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);