Σφάλμα εύρεσης μέσης τιμής πίνακα
Θα εξετάσουμε ένα σφάλμα που σχετίζεται με την εύρεση του αριθμητικού μέσου όρου των στοιχείων ενός πίνακα. Ας υποθέσουμε για παράδειγμα ότι έχουμε τον ακόλουθο πίνακα:
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);