Παρουσίαση/Προβολή
(3701020426) - ΑΠΟΣΤΟΛΟΣ ΣΥΡΟΠΟΥΛΟΣ
Περιγραφή Μαθήματος
Τι είναι οι αριθμοί Fibonacci και πως τους υπλογίζουμε;
Ημερομηνία δημιουργίας
Κυριακή 21 Φεβρουαρίου 2021
-
Περίγραμμα
Περιεχόμενο μαθήματος
O Leonardo Pisano (περίπου 1175-1250), γνωστός σήμερα ως Fibonacci, ήταν αυτός που εισήγαγε το ινδοαραβικό σύστημα γραφής αριθμών στους ανθρώπους που μιλούσαν μεσαιωνικά λατινικά στην Ευρώπη. Φυσικά το σύστημα αυτό είναι αυτό που χρησιμοπείται παγκοσμίως για την γραφή αριθμ'ων. Ο Fibonacci όμως είναι γνωστός και για την ακουλουθία αριθμών 0, 1, 1, 2, 3, 5, 8, 13, ... οι οποίοι αριθμοί είναι πλέον γνωστοι ως αριθμοί του Fibonacci. Όλα αυτά και άλλα περιγραφονται στο βιβλίο του με τίτλο Liber Abaci. Επειδή στο εξώφυλλο του βιβλίου έγραφε «filius Bonacci» (υιός του Bonacci), οι μελετητές του χειρόγραφου βιβλίου του βγάλανε το όνομα Fibonacci.
Οι αριθμοί Fibonacci ήταν αποτέλεσμα της προσπάθειας του να εξερευνήσει πόσο γρηγορα αναπαράγονται τα κουνέλια σε ιδανικές συνθήκες. Πιο συγκεκριμένα θεωρούμε πως ξεκινάμε με ένα ζευγάρι νεογέννητα κουνέλια. Αυτά μπορούν να αναπαραχθούν μετά από ακριβώς έναν μήνα. Επίσης το θηλυκό γεννάει πάντα ένα αρσενικό και ένα θηλικό κουνέλι και αυτά δεν πεθαίνουν ποτέ. Το πρόβλημα του Fibonacci είναι πόσα κουνέλια θα υπάρχουν στο τέλος του πρώτου έτους;
Για να λύσει το πρόβλημα αυτό ο Fibonacci σκέφτηκε ως εξής: Έστω ότι συμβολίζουμε με Αn τον αριθμό των ενήλικων ζευγαριών κουνελιών στη γενιά n (το n παίρνει τιμές από το 0, 1, 2, ...) και οι γενιές αλλάζουν με την αλλαγή μήνα. Επίσης έστω ότι συμβολίζουμε με Rn τον συνολικό αριθμό ζευγαριών κουνελιών στη γενιά n. Προφανώς ισχύει
An = Rn-1
επειδή απλά τα ανήλικα κουνέλια μετά από έναν μήνα γίνονται ενήλικα. Επίσης όλα τα ανήλικα κουνέλια μιας γενιάς είναι τόσα όσα τα ενήλικα κουνέλια της προηγούμενης γενιάς, επειδή κάθε ζευγάρι ενηλίκων κουνελιών κάνει ένα ζευγάρι μωρά κουνέλια. Οπότε αν συμβολίσουμε με Bn τον αριθμό των ζευγών των ανήλικων, τότε ισχύει
Bn = An-1 = Rn-2
Ο συνολικός αριθμός ζευγών κουνελιών σε μια γενιά n είναι προφανώς το άθροισμα του αριθμού των ενηλίκων ζευγαριών συν τον αριθμό των ανηλίκων ζευγαριών:
Rn = An + Bn = Rn-1 + Rn-2 άρα Rn = Rn-1 + Rn-2
Αν και ο Fibonacci δεν αναγνώρισε αμέσως την αξία της ακολουθίας αριθμών που ανακάλυψε, παρόλα αυτά οι αριθμοί αυτοί έχουν απασχολήσει και απασχολούν την επιστημονική κοινότητα. Αυτό το μαρτυρά ο αριθμός βιβλίων που έχουν δημοσιευτεί για το θέμα.
Μετά από αυτήν την μαθηματική ανάλυση είμαστε έτοιμοι να γράψουμε ένα πρόγραμμα σε Python που θα τυπώνει τους αριθμούς ζευγών κουνελιών. Ο παρακάτω κώδικας κάνει αυτό ακριβώς που ζητάμε:
n = int(input("Δώσε τον αριθμό γενιάς (>2)...\n? ")) R0 = 1 R1 = 1 for i in range(2,n+1): R2 = R1 + R0 print("Ο αριθμός των ζευγαριών κουνελιών στην γενια ",i," είναι ",R2) R0 = R1 R1 = R2Βλέπουμε πως για τον υπολογισμό των ζευγών κουνελιών της επόμενη γενιάς απλά δίνουμε στην μεταβλητή R0 την τιμή της μεταβλητής R1 και στην μεταβλητή R1 την τιμή της μεταβλητής R2. Έτσι την επόμενη φορά το R2 θα περιέχει τον αριθμό ζευγών κουνελιών της 3ης γενιάς κ.ο.κ. Ας δούμε και την έξοδο που παράγει το πρόγραμμά μας:
$ python3.7 Fibonacci.py Δώσε τον αριθμό γενιάς (>2)... ? 6 Ο αριθμός των ζευγαριών κουνελιών στην γενια 2 είναι 2 Ο αριθμός των ζευγαριών κουνελιών στην γενια 3 είναι 3 Ο αριθμός των ζευγαριών κουνελιών στην γενια 4 είναι 5 Ο αριθμός των ζευγαριών κουνελιών στην γενια 5 είναι 8 Ο αριθμός των ζευγαριών κουνελιών στην γενια 6 είναι 13
Άσκηση Οι αριθμοί Lucas ορίζονται με βάση τη σχέση Ln=Ln-1+Ln-2, όπου το L0=2 και L1=1. Γράψτε ένα πρόγραμμα το οποίο θα υπολογίζει τους πρώτους Ν αριθμούς Lucas.