Զանգվածի միջինը հաշվելու սխալ
Դիտարկենք զանգվածի տարրերի թվաբանական միջինը հաշվելու հետ կապված սխալը: Որպես օրինակ, թող ունենանք հետևյալ զանգվածը.
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);