Памылка знаходжання сярэдняга ад масіва
Разгледзім памылку, звязаную з знаходжаннем сярэдняга арыфметычнага ад элементаў масіва. Хай для прыкладу ў нас дадзены вось такі масіў:
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);