1 00:00:00,000 --> 00:00:03,110 >> ΟΜΙΛΗΤΗΣ 1: Σε αυτή την τελευταία έκδοση του σίγμα, θα εφαρμοστεί αυτό που θα ονόμαζα 2 00:00:03,110 --> 00:00:06,570 μια επαναληπτική λύση, σύμφωνα με την οποία θα χρησιμοποιηθεί ένα μπροστά βρόχο για να μετρήσει μέχρι όλα τα 3 00:00:06,570 --> 00:00:09,720 αριθμοί μεταξύ 1 και m, στη συνέχεια την επιστροφή του ποσού. 4 00:00:09,720 --> 00:00:12,560 >> Αλλά τελικά μπορούμε να χρησιμοποιήσουμε ένα άλλο τεχνική για να εφαρμόσει την ίδια 5 00:00:12,560 --> 00:00:15,120 τη λειτουργία, μια τεχνική γνωστή ως αναδρομή. 6 00:00:15,120 --> 00:00:19,360 Μια αναδρομική συνάρτηση, να το πω έτσι, είναι απλά αυτό που καλεί τον εαυτό της. 7 00:00:19,360 --> 00:00:21,290 Τώρα, και αυτή η ίδια, ότι θα μπορούσε να είναι ένα πρόβλημα. 8 00:00:21,290 --> 00:00:24,500 Αν μια συνάρτηση αυτοαποκαλείται απλά που αυτοαποκαλείται η οποία καλεί, 9 00:00:24,500 --> 00:00:26,080 ότι η διαδικασία μπορεί να bot τελειώσει ποτέ. 10 00:00:26,080 --> 00:00:30,490 Αλλά εφ 'όσον έχουμε περιλαμβάνουν μια λεγόμενη βασική περίπτωση, μία προϋπόθεση που διασφαλίζει 11 00:00:30,490 --> 00:00:34,930 ότι σε ορισμένες καταστάσεις που δεν απαιτούν τους εαυτούς μας, ότι η διαδικασία με άλλο τρόπο 12 00:00:34,930 --> 00:00:37,070 άπειρη looping πρέπει να σταματήσει. 13 00:00:37,070 --> 00:00:39,180 >> Ας δούμε τώρα Νέα υλοποίηση σίγμα ως ακολούθως. 14 00:00:39,180 --> 00:00:43,810 Εάν n είναι μικρότερη ή ίση με 0, είμαι απλά, και κάπως αυθαίρετα, 15 00:00:43,810 --> 00:00:45,670 πρόκειται να επιστρέψει 0. 16 00:00:45,670 --> 00:00:49,370 Αλλιώς τι Πάω να κάνουμε είναι πραγματικότητα υπολογίσουμε σίγμα για το θετικό int 17 00:00:49,370 --> 00:00:50,460 ότι έχω παραδοθεί. 18 00:00:50,460 --> 00:00:52,050 >> Τώρα, τι είναι σίγμα m; 19 00:00:52,050 --> 00:00:55,480 Λοιπόν, σίγμα του m είναι, φυσικά, το άθροισμα του 1 μέσα από m. 20 00:00:55,480 --> 00:00:58,820 Αλλά αν σκεφτούμε τον άλλο τρόπο, είναι απλά το άθροισμα των m συν m 21 00:00:58,820 --> 00:01:02,560 μείον 1 συν Μ μείον 2 και ούτω καθεξής, σε όλη τη διαδρομή προς 1. 22 00:01:02,560 --> 00:01:08,080 Έτσι, με αυτή την έννοια, φαίνεται ότι Θα μπορούσα απλά να επιστρέψει m συν. 23 00:01:08,080 --> 00:01:10,210 >> Και τότε θα πρέπει m μείον 1 m συν πλην 2. 24 00:01:10,210 --> 00:01:13,470 Αλλά έχω μια λειτουργία που μπορεί να δώσει Θέλω ακριβώς η απάντηση, δηλαδή 25 00:01:13,470 --> 00:01:16,340 σίγμα πι του μείον 1. 26 00:01:16,340 --> 00:01:19,670 >> Τώρα, καλώντας τον εαυτό μου με αυτόν τον τρόπο δεν φαίνεται σαν η καλύτερη ιδέα. 27 00:01:19,670 --> 00:01:22,610 Γιατί αν σίγμα σίγμα καλεί η οποία καλεί σίγμα οποία καλεί σίγμα, σας 28 00:01:22,610 --> 00:01:24,480 Θα νόμιζε κανείς ότι αυτή η διαδικασία μπορεί να μην τελειώσει ποτέ. 29 00:01:24,480 --> 00:01:27,720 Αλλά γι 'αυτό είχαμε τη λεγόμενη βάση περίπτωση στην κορυφή αυτής της λειτουργίας. 30 00:01:27,720 --> 00:01:31,540 Το αν η κατάσταση που ελέγχει αν το m είναι μικρότερη ή ίση με 0 Δεν θα πάω 31 00:01:31,540 --> 00:01:32,610 να αποκαλέσω τον εαυτό μου. 32 00:01:32,610 --> 00:01:37,010 Είμαι αντί να πηγαίνει να επιστρέψει 0, η οποία με τη σειρά του πρόκειται να προστεθούν στο 33 00:01:37,010 --> 00:01:39,950 προηγούμενων αριθμών που έχω αθροίζοντας up, σταματώντας έτσι αυτό 34 00:01:39,950 --> 00:01:41,740 διαφορετικά άπειρη διαδικασία. 35 00:01:41,740 --> 00:01:43,710 >> Ας δούμε τώρα αν αυτή η νέα υλοποίηση έργων. 36 00:01:43,710 --> 00:01:46,510 Ας σώσει, την κατάρτιση, και εκτελέσετε αυτό το πρόγραμμα. 37 00:01:46,510 --> 00:01:50,640 Κάντε σίγμα 1 dot κάθετος σ 1. 38 00:01:50,640 --> 00:01:52,900 Και ας το δώσει με το ίδιους αριθμούς όπως πριν. 39 00:01:52,900 --> 00:01:55,520 2, η οποία θα πρέπει να δώσει ελπίζουμε μου 3. 40 00:01:55,520 --> 00:01:58,970 Ας δώσει 3, η οποία θα πρέπει να δώσει ελπίζουμε μου 6. 41 00:01:58,970 --> 00:02:03,480 Και ας παρέχει τελικά με 50, η οποία μου δίνει πράγματι 1.275. 42 00:02:03,480 --> 00:02:06,130