Błąd znajdowania średniej z tablicy
Rozważmy błąd związany ze znajdowaniem średniej arytmetycznej elementów tablicy. Niech dla przykładu mamy daną taką tablicę:
let arr = [1, 2, 3, 4, 5];
Aby znaleźć średnią elementów, trzeba znaleźć ich sumę i podzielić przez ilość. Pewien programista rozwiązał już to zadanie w następujący sposób:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
Przyjrzyjmy się problemom takiego rozwiązania. Technicznie kod działa poprawnie i daje prawidłową odpowiedź. Chodzi o to, że matematycznie poprawne jest zarówno dzielenie całej sumy przez ilość, jak i dzielenie każdego ze składników przez ilość.
Jednak pojawia się inny problem. Chodzi o to, że będziemy wykonywać dzielenie tyle razy, ile elementów jest w naszej tablicy. I okazuje się, że wykonujemy dużą liczbę zbędnych operacji, przecież dzielenie można było wykonać na końcu - jeden raz, dzieląc całą znalezioną sumę.
Zoptymalizujmy nasz kod:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);