Γενικό Λύκειο > Δομή ακολουθίας

Ακρίβεια πραγματικών αριθμών

<< < (2/2)

George Eco:
Άργησα να το δω αυτό...
Συμφωνώ πως είναι δίκοπο μαχαίρι.
Από τη μία αφαιρείται ΟΛΟ το κομφούζιο του (0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1 <> 1) = ΑΛΗΘΗΣ
από την άλλη αν το εφαρμόζεις σε πηλίκα, έχει κακό αποτέλεσμα.

Αν το πάμε κατά κανόνα, επί χάρτου στη ΓΛΩΣΣΑ έχουμε άπειρη ακρίβεια.
Μου κάθεται στο λαιμό αυτό βέβαια.


--- Παράθεση από: ApoAntonis στις 07 Απρ 2020, 11:52:46 πμ ---δίκοπο...
print 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1 == 0.999999999
ούτε και αυτό δίνει True
(με 16 εννιάρια όμως αλλάζει το αποτέλεσμα)

ενώ το
print 1.0/3 + 1.0/3 +1.0/3 == 1
παράγει True


--- Τέλος παράθεσης ---

Βασικά η εντολή
print 1.0/3 + 1.0/3 +1.0/3 == 1
παράγει True για το λόγο που αναφέρεις παραπάνω συνάδελφε.
Ξεπερνά τα 16 εννιάρια κατά την άθροιση.

Κι εδώ είναι που μου κάθεται και πάλι στο λαιμό η ΓΛΩΣΣΑ. Επί χάρτου έχουμε άπειρη ακρίβεια.
Με το δίκιο του ο Άλκης θέλει να μη κάνει τα παιδάκια να τραβάνε τα μαλλιά τους,
για να κατανοήσουν γιατί  0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1 = 0.999999999 κι όχι 1.0
βάσει της πεπερασμένης ακρίβειας vs της άπειρης ακρίβειας
από την άλλη, πρέπει μάλλον τα παιδιά της Γ Λυκείου να μαθαίνουν τι τρέχει λίγο under the hood.

Αυτό όμως θα αύξανε τη δυσκολία του μαθήματος εκθετικά σε αυτό το σημείο, δίχως κάποιο ουσιαστικό όφελος για τα παιδιά.
"Αφού επί χάρτου είναι άπειρη η ακρίβεια στη ΓΛΩΣΣΑ, τι νόημα έχει να μας το εξηγείτε αυτό για τις Πανελλήνιες κύριε;"
Τι απαντάμε εδώ;
Θα μου πείτε δε τους μιλάμε ποτέ για άπειρη ακρίβεια; Για πόση ακρίβεια μιλάμε τότε;
Κι ερχόμαστε στο προβληματισμό του Άλκη! ::)
Διότι δύο δεκαδικά είναι μια αποδεκτή ακρίβεια, κι η άπειρη ακρίβεια επί χάρτου μου κάθεται στο λαιμό.
Τελικά, στις Πανελλήνιες, υπάρχουν, οδηγίες, πλαίσιο, ρητή διευκρίνιση του πόση είναι η ακρίβεια;
Για Πανελλήνιες αυτό μας νοιάζει. Για το τι γίνεται under the hood, μπορώ να συμφωνήσω, πως μπορούν να το μάθουν ως πρωτοετείς Φοιτητές αυτό. Δε θα δυσκολευόμουν πολύ να τους το εξηγήσω, αλλά θα μου έπαιρνε μία με δύο ώρες ανάλογα το επίπεδο της τάξης. Δεν είναι απλό να το εξηγήσεις.



--- Παράθεση από: alkisg στις 07 Απρ 2020, 12:32:04 μμ ---Επομένως ο Διερμηνευτής μένει ως έχει, ενώ αν ποτέ το γυρίσουμε σε Python, τότε θα πρέπει ο κάθε καθηγητής να αποφεύγει παραδείγματα που εμπλέκουν οριακές συγκρίσεις πραγματικών αριθμών, όπως είναι οι επαναλήψεις με πραγματικό βήμα, π.χ. ΓΙΑ μ ΑΠΟ 0 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ 0.1.

--- Τέλος παράθεσης ---
:)
Καλή σκέψη θα έλεγα. Αν γυρίσει θε python θα πρέπει να συμπεριληφθεί αυτό στο βιβλίο Καθηγητή ως ρητή οδηγία θα έλεγα και να βγάλουν εκτός ύλης το δεκαδικό βηματισμό ως εκτός πλαισίου μαθήματος φέρει πειν, στυλ "υπάρχει, γίνεται, αλλά δε θα ασχοληθούμε στο μάθημα με αυτό".

Εναλλακτικά θα ΠΡΕΠΕΙ να μιλάμε για πεπερασμένη ακρίβεια αναγκαστικά. Δεν έχω κανένα πρόβλημα να γίνει έτσι στο μάθημα, φτάνει να είναι ρητά ορισμένο στην ύλη. Δύσκολο να το διδάξεις, όχι απίθανο όμως.

alkisg:

--- Παράθεση από: George Eco στις 27 Ιουλ 2020, 09:29:13 μμ ---από την άλλη αν το εφαρμόζεις σε πηλίκα, έχει κακό αποτέλεσμα.

--- Τέλος παράθεσης ---

Εφαρμόζεται σε συγκρίσεις, όχι σε πράξεις. Οι πράξεις γίνονται κανονικά χωρίς καμία στρογγυλοποίηση.
Π.χ. αν το 1/3 σαν πράξη έχει διαφορετικό αποτέλεσμα από το 3/9 (δεν το κοίταξα), τότε με αυτή την επιλογή το 1/3 = 3/9 θα είναι ΑΛΗΘΗΣ.

Πρόσφατα είδα ότι και ο Knuth είχε κάνει κάτι αντίστοιχο στο πασίγνωστο βιβλίο The Art of Computer Programming από όπου έχουν αντιγραφεί πολλά σημεία της ΑΕΠΠ.
Εκεί, είχε προδιαγράψει τον ιδεατό υπολογιστή MIX για τη διδασκαλία assembly MIXAL. Ο επεξεργαστής του MIX έχει μόνο μία εντολή για συγκρίσεις πραγματικών αριθμών, την FCMP (float compare). Ο Knuth όρισε ότι στη θέση 0 της RAM υπάρχει μια ειδική καθολική μεταβλητή ονόματι EPSILON, την οποία χρησιμοποιεί η FCMP στις συγκρίσεις. Έτσι, αν κάποιος βάλει 0 στο EPSILON, είναι σαν να απενεργοποιεί την επιλογή αυτή, ενώ αν βάλει π.χ. 0.0001, τότε οι συγκρίσεις γίνονται με προσέγγιση 4 δεκαδικών ψηφίων.


--- Παράθεση από: https://esolangs.org/wiki/MIX_(Knuth) ---FCMP does tolerant comparison of rA with the memory word at address M, the tolerance is given by the word at address 0, output to the comparison flags.

--- Τέλος παράθεσης ---

George Eco:
Ναι εννοούσα τη σύγκριση αθροίσματος κλασμάτων τύπου 1/3 + 1/3 + 1/3 = 1

Πολύ ενδιαφέρον αυτό με τον Knuth Άλκη. Δε το έχω διαβάσει το βιβλίο και μου βάζεις ζιζάνια τώρα!  :D ;D
Κι ευχαριστώ γι' αυτό! Τον ξέρω τον Knuth από τα Numberphille - Computerphille Youtube Clannels και δε μπήκα ποτέ σε διαδικασία να δω τι έχει γράψει.

Πλοήγηση

[0] Λίστα μηνυμάτων

[*] Προηγούμενη σελίδα

Μετάβαση στην πλήρη έκδοση