Массивтен орташа мәнді табу қатесі
Массив элементтерінің орташа арифметикалық мәнін табумен байланысты қатені қарастырайық. Мысал ретінде бізге мынадай массив берілген деп алайық:
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);