Συζητήσεις για το μάθημα και ανακοινώσεις

if x in [a,b,..,c]

 
Picture of Μιχάλης Κολουντζάκης
Re: if x in [a,b,..,c]
by Μιχάλης Κολουντζάκης - Saturday, 14 October 2017, 11:29 PM
 

Όχι ακριβώς.

Ένας πραγματικός αριθμός δε μπορεί εν γένει να αναπαρασταθεί ακριβώς μέσα σε πεπερασμένη μνήμη όπως αυτή που έχει ο υπολογιστής (και να είχαμε άπειρη μνήμη για κάποιο λόγο, πάλι θα θέλαμε άπειρο χρόνο για να διαβάσουμε τα άπειρα ψηφία του αριθμού, πόσο μάλλον για να τα επεξεργαστούμε). Αυτός είναι ο λόγος που ούτε η σύγκριση μπορεί να γίνει ακριβώς και επιτρέπουμε πάντα ένα μικρό σφάλμα όταν κοιτάμε αν δύο πραγματικοί αριθμοί είναι ίσοι.

Τα προγράμματα που γράφουμε με πραγματικούς αριθμούς μπορούν λοιπόν να αποτύχουν για κάποιες πολύ κοντινές τιμές πραγματικών αριθμών. Αν π.χ. ψάχνουμε το μέγιστο τριών αριθμών τότε μπορεί, επειδή κάποια πράξη έγινε μόνο κατά προσέγγιση, να βρούμε ένα διαφορετικό αριθμό από τους τρεις που να είναι ο μέγιστος. Αυτό μπορεί να συμβεί αν δύο από τους αριθμούς είναι πολύ κοντά. Ευτυχώς σε αυτή την περίπτωση το ίδιο το μέγιστο θα έχει αλλάξει κατά πάρα πολύ λίγο.