7 of 17 menu

Памылка знаходжання сярэдняга ад масіва

Разгледзім памылку, звязаную з знаходжаннем сярэдняга арыфметычнага ад элементаў масіва. Хай для прыкладу ў нас дадзены вось такі масіў:

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);
ruazswdapt