Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλησπερα παιδια, θα ηθελα σας παρακαλω αν καποιος μπορει να μου εξηγησει με δυο απλα λογια την αναδρομη γιατι δεν μπορω να την καταλαβω

Δημοσ.

Ας πούμε ότι έχεις την εξής συνάρτηση

 

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;
}
  • Like 3
Δημοσ.

για να καταλαβεις την αναδρομη θα πρεπει πρωτα να καταλαβεις την αναδρομη :P

Βγαίνει και σε μπλούζα :P

jnjS5ut.jpg

  • Like 2
Δημοσ.

Ας πούμε ότι έχεις την εξής συνάρτηση

 

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;
}

σ ευχαριστω πολυ!!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...