Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Python Προγραμματισμός

Python Αναδρομικές Συναρτήσεις

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

Αναδρομικές συναρτήσεις αυτοαποκαλούνται ως μέρος του ορισμού τους . Για παράδειγμα :

>>> def συντελεστή (x ) :

. . . συντελεστή (x )

Αυτή η λειτουργία θα συνεχίσει να αυτοαποκαλείται μέχρις ότου το σύστημα δεν μπορεί πλέον να κρατήσει το ποσό των κλήσεων λειτουργίας γίνεται ( κλήσεις λειτουργίας βρίσκεται στη μνήμη , όπως οποιαδήποτε άλλα δεδομένα ) . Ωστόσο, αυτό απλοποιεί τον τρόπο ένα αναδρομικές συναρτήσεις λειτουργεί εννοιολογικά : Μια συνάρτηση (συντελεστής ) αυτοαποκαλείται ( συντελεστή (x ) ) , ως μέρος του ορισμού της
εικόνων υποθέσεις Βάση
Η

. Μια αναδρομική συνάρτηση πρέπει να έχει ό, τι θα μπορούσε να ονομαστεί «περιπτώσεις βάσης », ή τους όρους που λένε τη λειτουργία για να σταματήσει αναδρομή του . Αυτό θα μπορούσε να είναι οποιαδήποτε προϋπόθεση ότι η λειτουργία θα μπορούσε να έχει πεισθεί ως μέρος της λειτουργίας του . Ως κλασικό παράδειγμα , η συνάρτηση παραγοντικό βρίσκει το παραγοντικό ενός αριθμού n ( n! , ή n * n - 1 * n - 2 ... 0 ) . Έτσι, το παραγοντικό του 3 θα έπρεπε να υπολογίζουν σε 3 * 2 * 1 = 6 . Ένας προγραμματιστής μπορεί να χρησιμοποιήσει τον αριθμό 0 ως το βασικό σενάριο αυτής της λειτουργίας :

>>> αν x == 0 :

. . . επιστροφή 1

Η Αναδρομή
Η

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

>>> άλλο :

. . . επιστροφή * συντελεστής x (x - 1 )

Αν η x δεν είναι ίσο με 0 , τότε η αναδρομή θα ξεκινήσει /συνεχιστεί . Η δήλωση απόδοσης θα καλέσει " παράγοντας " και περιμένετε . Κάθε νέα κλήση της συνάρτησης θα κάνει το ίδιο , καλώντας και να περιμένει μέχρι την τελευταία κλήση της συνάρτησης ( όταν το x == 0 ) επιστρέφει 1 . Στη συνέχεια , κάθε προηγούμενη κλήση θα τελειώσει τη δήλωση επιστροφής ( πολλαπλασιάστε την επιστρεφόμενη τιμή από το " συντελεστή " από το x ) μέχρι το παραγοντικό επιστρέφεται .
Εικόνων Python Αναδρομή
Η

Αναδρομή στην οποιαδήποτε γλώσσα μπορεί να καταλήξει σε ένα άπειρο βρόχο : Δηλαδή , μια επαναληπτική δομή που δεν τελειώνει ποτέ , μέχρι το σύστημα να σταματήσει λόγω έλλειψης πόρων . Python σταματά αυτό το " άπειρο " αναδρομή στα 1.000 κλήσεις ( έτσι μια συνάρτηση μπορεί να ζητήσει η ίδια σε 1.000 παράδειγμα βίου αναδρομική αλυσίδας πριν Python σταματά τη διαδικασία ) . Ο προγραμματιστής μπορεί να αλλάξει την τιμή αυτή μέσα από τις βιβλιοθήκες του συστήματος , όπως αυτό το παράδειγμα :

>>> συστήματα εισαγωγής

>>> sys.setrecursionlimit ( 2000 )

Ωστόσο , σε εκείνο το σημείο οι προγραμματιστές θα μπορούσαν να αναρωτηθούν αν αναδρομής είναι η καλύτερη λύση για το πρόβλημα .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα