සාමාන්යය සෙවීමේ දෝෂය
අරාවක මූලද්රව්යවල ගණිතමය මධ්යන්යය සෙවීමට අදාළ දෝෂයක් සලකා බලමු. උදාහරණයක් වශයෙන්, අපට පහත අරාව ලබා දී ඇතැයි සිතමු:
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);