Massiwden ortaça bahany tapmakdaky ýalňyşlyk
Massiw elementleriniň arifmetiki ortasyny tapmak bilen baglanyşykly ýalňyşlygy görkeýäris. Meselem üçin, bizde aşakdaky massiw berlen diýeliň:
let arr = [1, 2, 3, 4, 5];
Elementleriň ortasyny tapmak üçin, olaryň jemyny tapmaly we sanyna bölmeli. Belli bir programmist bu meseläni aşakdaky ýaly çözen:
let avg = 0;
for (let elem of arr) {
avg += elem / arr.length;
}
console.log(avg);
Geliň bu çözgüdiň masalaharyny gözden geçireýälim. Tehniki taýdan kod dogry işleýär we dogry jogap berýär. Mysaly şonda, matematiki taýdan dogry jem jemini sanyna bölmek hem, ýa-da her bir goşujyny sanyna bölmek.
Emma, başga bir problem ýüze çykýar. Mysaly şonda, biz bölmegi massiwimizde bar bolan elementleriň sanyna deň dowamly ýerine ýetireris. Şonuň üçin, biz köp mukdarda artykmaç amallary ýerine ýetirýäris, sebäbi bölmegi ahyrynda - bir gezek, hemme tapylan jemi bölüp ýerine ýetirip bolardy.
Geliň kodymyzy optimizasiýa edeliň:
let sum = 0;
for (let elem of arr) {
sum += elem;
}
let avg = sum / arr.length;
console.log(avg);