Να προσθέσω επιπλέον ότι στο παρακάτω παράδειγμα θα πάρουμε ατέρμονη επανάληψη, χωρίς να έχουμε μηδενικό βήμα στον διερμηνευτή!
ΠΡΟΓΡΑΜΜΑ ααα
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: κ
ΑΡΧΗ
ΓΙΑ κ ΑΠΟ 1000000000000.0 ΜΕΧΡΙ 100000000000000000000000.0 ΜΕ_ΒΗΜΑ 0.000000000000000000000000000000001
ΓΡΑΨΕ κ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Bugman
Αυτό που θίγεις εδώ είναι πολύ ενδιαφέρον.
Ανάγει ένα φιλοσοφικό ερώτημα. Ή μήπως σημασιολογικό;
Τι ορίζουμε ακριβώς ως ατέρμονη επανάληψη; Εγώ ας πούμε το αντιλαμβάνομαι, ως επανάληψη επ άπειρον. Άπειρα βήματα, δίχως τρόπο διακοπής.
Μιλάμε για κάτι που δε τελειώνει ποτέ λοιπόν;
Αν ποιητική αδεία δε με κρεμάσουν οι Μαθηματικοί, μοιάζει με το όριο ας πούμε; Λέμε "τείνει στο μηδέν, πλησιάζει συνεχώς το μηδέν, ποτέ δε γίνεται μηδέν όμως".
Ξέρεις, δεν αντιμετωπίζουμε το άπειρο ως αριθμό.
Ποτέ. Από τη στιγμή που το άπειρο δεν είναι αριθμός λοιπόν, θα ήταν μαθηματικά απαράδεκτο, να αποκαλέσω αυτό που λες ατέρμονη επανάληψη.
Αλλά πρακτικά, με την υπολογιστική δύναμη που έχει ο μέσος χρήστης σήμερα σπίτι του, αυτό
θα μοιάζει με μια ατέρμονη επανάληψη.
Μου κάνεις εντύπωση, γιατί αυτό το επιχείρημα μου το έθιξε κι ένας εγκάρδιος φίλος μου.
Ναι σε εύλογο χρονικό διάστημα ο Η/Υ δε θα το ολοκληρώσει κι αν μιλήσουμε θεωρητικά και για 1.7 χ 10^308 ακόμα χειρότερα.
Προφανώς το 10 στη 308η δύναμη είναι αστρονομικό.
Αν έιχαμε έναν Η/Υ που μπορούσε να κάνει 10 ^ 310 πράξεις το δευτερόλεπτο, ο αλγόριθμος θα λάμβανε τέλος σύντομα. Διότι είναι
πεπερασμένα και πάλι τα βήματα, απλά πάρα πολλά.
Δε μπορούμε να εξισώσουμε το άπειρο με αριθμό, οσοδήποτε μεγάλος κι αν είναι.
Ωστόσο, το ερώτημα παραμένει. Αν σε εύλογο χρονικό διάστημα δε τελειώσει μια δομή επανάληψης, αλλά θέλει ξέρω γω 3 δις χρόνια, θεωρείται ατέρμονη επανάληψη;
Παραβιάζεται ο κανόνας της περατότητας σε αυτή τη περίπτωση;
Ωραία αυτά τα ερωτήματα γιατί αν σκάσει κάνα παιδί με τέτοια ερώτηση, είναι ωραίο να έχουμε κάποια απάντηση.
Ας το απλουστεύσουμε λίγο...
ΠΡΟΓΡΑΜΜΑ Ακραίες_Τιμές
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: κ
ΑΡΧΗ
ΓΙΑ κ ΑΠΟ 1.0 ΜΕΧΡΙ 2.0 ΜΕ_ΒΗΜΑ 0.000000000000000000000000000000001
ΓΡΑΨΕ κ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Ακραίες_Τιμές
Εμφανίζει 1.00 συνεχώς αλλά δεν είναι ατέρμονο. Απλά απαιτεί πολλά βήματα για να φανεί το 1.01 κι αυτό αποδεικνύεται με μια πιο light εκδοχή:
ΠΡΟΓΡΑΜΜΑ Ακραίες_Τιμές_β
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: κ
ΑΡΧΗ
ΓΙΑ κ ΑΠΟ 1.0 ΜΕΧΡΙ 2.0 ΜΕ_ΒΗΜΑ 0.00001
ΓΡΑΨΕ κ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Ακραίες_Τιμές_β