palakojm Δημοσ. 9 Μαρτίου 2015 Δημοσ. 9 Μαρτίου 2015 καλησπερα παιδια, θα ηθελα σας παρακαλω αν καποιος μπορει να μου εξηγησει με δυο απλα λογια την αναδρομη γιατι δεν μπορω να την καταλαβω
bnvdarklord Δημοσ. 9 Μαρτίου 2015 Δημοσ. 9 Μαρτίου 2015 Ας πούμε ότι έχεις την εξής συνάρτηση f(x) = f(x-1) + 1 Για να υπολογίσεις την τιμή της χρησιμοποιείς τον εαυτό της. Αυτό κάνει την συνάρτηση αναδρομική. Έχεις λοιπόν για παράδειγμα f(3) = f(2) + 1 = (f(1) + 1) + 1 = ((f(0) + 1) + 1) + 1 = ... Όπως βλέπεις αυτό συνεχίζει για πάντα. Για αυτό, κάθε αναδρομική συνάρτηση χρειάζεται μια συνθήκη τερματισμού. Για το παράδειγμα αυτό ας πούμε πως προσαρμόζουμε την συνάρτηση ως εξής: f(x) = f(x-1) + 1 για x != 0 f(x) = 0 για x = 0 Οπότε τώρα το f(3) = f(2) + 1 = (f(1) + 1) + 1 = ((f(0) + 1) + 1) + 1 = 0+1+1+1 = 3. Το ίδιο ακριβώς πράγμα γίνεται και στον προγραμματισμό. Η παραπάνω συνάρτηση θα γραφόταν ως εξής int Function(int Number) { if(Number == 0) return 0; return Function(Number - 1) + 1; } 3
tr3quart1sta Δημοσ. 9 Μαρτίου 2015 Δημοσ. 9 Μαρτίου 2015 για να καταλαβεις την αναδρομη θα πρεπει πρωτα να καταλαβεις την αναδρομη 4
Xvipes Δημοσ. 9 Μαρτίου 2015 Δημοσ. 9 Μαρτίου 2015 για να καταλαβεις την αναδρομη θα πρεπει πρωτα να καταλαβεις την αναδρομη Βγαίνει και σε μπλούζα 2
palakojm Δημοσ. 9 Μαρτίου 2015 Μέλος Δημοσ. 9 Μαρτίου 2015 Ας πούμε ότι έχεις την εξής συνάρτηση f(x) = f(x-1) + 1 Για να υπολογίσεις την τιμή της χρησιμοποιείς τον εαυτό της. Αυτό κάνει την συνάρτηση αναδρομική. Έχεις λοιπόν για παράδειγμα f(3) = f(2) + 1 = (f(1) + 1) + 1 = ((f(0) + 1) + 1) + 1 = ... Όπως βλέπεις αυτό συνεχίζει για πάντα. Για αυτό, κάθε αναδρομική συνάρτηση χρειάζεται μια συνθήκη τερματισμού. Για το παράδειγμα αυτό ας πούμε πως προσαρμόζουμε την συνάρτηση ως εξής: f(x) = f(x-1) + 1 για x != 0 f(x) = 0 για x = 0 Οπότε τώρα το f(3) = f(2) + 1 = (f(1) + 1) + 1 = ((f(0) + 1) + 1) + 1 = 0+1+1+1 = 3. Το ίδιο ακριβώς πράγμα γίνεται και στον προγραμματισμό. Η παραπάνω συνάρτηση θα γραφόταν ως εξής int Function(int Number) { if(Number == 0) return 0; return Function(Number - 1) + 1; } σ ευχαριστω πολυ!!
gon1332 Δημοσ. 9 Μαρτίου 2015 Δημοσ. 9 Μαρτίου 2015 Αρκετά γνωστά παραδειγματάκια που λύνονται (και) με αναδρομή μπορείς να δεις εδώ.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα