Kļūda, meklējot vidējo vērtību no masīva
Analizēsim kļūdu, kas saistīta ar vidējā aritmētiskā atrašanu no masīva elementiem. Piemēram, pieņemsim, ka mums ir dots šāds masīvs:
let arr = [1, 2, 3, 4, 5];
Lai atrastu vidējo vērtību no elementiem, jāatrod to summa un jādala ar to skaitu. Kāds programmētājs jau ir atrisinājis šo uzdevumu sekojošā veidā:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
Paskatīsimies uz šī risinājuma problēmām. Tehniski kods darbojas pareizi un sniedz pareizo atbildi. Lieta tāda, ka matemātiski korekti ir gan dalīt visu summu ar skaitu, gan dalīt katru no saskaitāmajiem ar skaitu.
Tomēr rodas cita problēma. Lieta tā, ka mēs veiksim dalīšanu tik reižu, cik elementu ir mūsu masīvā. Un izrādās, ka mēs darām lielu skaitu lieku operāciju, jo dalīšanu varēja veikt beigās - vienu reizi, visu atrasto summu dalot.
Optimizēsim mūsu kodu:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);