Errore nel calcolo della media di un array
Consideriamo un errore relativo al calcolo della media aritmetica degli elementi di un array. Supponiamo, ad esempio, di avere il seguente array:
let arr = [1, 2, 3, 4, 5];
Per trovare la media degli elementi, è necessario trovare la loro somma e dividerla per il numero di elementi. Un programmatore ha già risolto questo problema nel seguente modo:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
Analizziamo i problemi di questa soluzione. Tecnicamente, il codice funziona correttamente e fornisce la risposta giusta. Il fatto è che matematicamente è corretto sia dividere l'intera somma per il numero di elementi, sia dividere ciascuno degli addendi per il numero di elementi.
Tuttavia, sorge un altro problema. Il fatto è che eseguiremo la divisione tante volte quanti sono gli elementi nel nostro array. E risulta che stiamo facendo un gran numero di operazioni superflue, dato che avremmo potuto eseguire la divisione alla fine - una volta sola, dividendo l'intera somma trovata.
Ottimizziamo il nostro codice:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);