Gabimi në gjetjen e mesatares nga një array
Le të shqyrtojmë një gabim të lidhur me gjetjen e mesatares aritmetike të elementeve të një array. Le të themi për shembull se kemi këtë array:
let arr = [1, 2, 3, 4, 5];
Për të gjetur mesataren e elementeve, duhet të gjejmë shumën e tyre dhe ta pjesëtojmë me numrin e tyre. Një programues e ka zgjidhur tashmë këtë detyrë në mënyrën e mëposhtme:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
Le të shqyrtojmë problemet e këtij zgjidhjeje. Nga ana teknike, kodi funksionon si duhet dhe jep përgjigjen e saktë. Çështja është se matematikisht është e saktë të pjesëtosh të gjithë shumën me numrin e elementeve, ashtu siç është e saktë të pjesëtosh secilin prej termave veç e veç me numrin e elementeve.
Megjithatë, lind një problem tjetër. Çështja është se ne do të kryejmë pjesëtim aq herë sa ka elementë në array-in tonë. Dhe rezulton se ne bëjmë një numër të madh operacionesh të tepërta, sepse pjesëtimin mund ta kishim kryer në fund - një herë, duke pjesëtuar të gjithë shumën e gjetur.
Le të optimizojmë kodin tonë:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);