cathy Δημοσ. 7 Απριλίου 2005 Δημοσ. 7 Απριλίου 2005 hello there! eimai neo melos, kai exw kapoies apories sxetika me ti java. vevaia, gia esas einai geloies, alla egw twra arxisa na asxoloumai(oxi mono me java alla k programmatismo genikotera) kai kollaw se vlakeies :???: opote...opoios thelei,help! please... den exw katalavei kala tin simasia twn anadromikwn methodwn sti java. kserw oti voithoun sti meiwsi tis polylpokotitas tou programmatos, alla dyskoleuomai na ylopoiw programmatakia me anadromes.(askisoules-mi pareksigoumaste) gia paradeigma,de mporw na katalavw pws mporoume me anadromiki methodo,na elegxoume an enas arithmos einai prwtos i oxi. (enw me mia if ginetai poly apla.)
random Δημοσ. 8 Απριλίου 2005 Δημοσ. 8 Απριλίου 2005 Αν ήξερα πως μεταφράζονται οι "αναδρομικές μέθοδοι" θα το συζητούσαμε προς το παρόν, δες εδώ http://www.javahellug.org/ http://java.sun.com/docs/books/tutorial/ * το in.gr λέει αναδρομική=retroactive :grin: :smile: *^2 καλή η γκρεκοπαιδεία, αλλα οταν συνδιάζεται με γκρικλιτσ ραγίζει κρύσταλα
alkisg Δημοσ. 8 Απριλίου 2005 Δημοσ. 8 Απριλίου 2005 Η φιλοσοφία της αναδρομής είναι η ίδια είτε πρόκειται για μεθόδους είτε για συναρτήσεις είτε για διαδικασίες. Για να ελέγξεις αν ένας αριθμός Ν είναι πρώτος, ο πιο απλός αλγόριθμος είναι να δοκιμάσεις αν διαιρείται ακριβώς με κάποιον από τους αριθμούς 2 ως Ν/2. for (i = 2; i < N/2; i++) if (N % i == 0) // αν το υπόλοιπο είναι μηδέν τότε διαιρείται. Για να το κάνεις αυτό αναδρομικά θα πρέπει να βγάλεις το for, αφού η επανάληψη θα γίνεται από την ίδια την αναδρομή. Π.χ. την συνάρτηση prwtos(N, i) μπορείς να την υλοποιήσεις με τον παρακάτω τρόπο: if (N % i == 0) //αν το υπόλοιπο είναι μηδέν διαιρείται else if (i >= N/2) //αν έγιναν όλες οι επαναλήψεις που θέλουμε δεν διαιρείται else return prwtos(N, i+1) //κάλεσε πάλι την αναδρομική μέθοδο με το επόμενο i Και την καλείς με το αρχικό i, δηλαδή prwtos(N, 2) Δηλαδή η αναδρομή αντιστοιχεί με μια επανάληψη, οπότε ο αναδρομικός κώδικας έχει μια for λιγότερη από τον μη αναδρομικό. Δες και το topic http://www.insomnia.gr/vb3/showthread.php?t=94254
Snolly Δημοσ. 8 Απριλίου 2005 Δημοσ. 8 Απριλίου 2005 Όπως πολύ σωστά εξηγεί ο alkisgr μια αναδρομική μέθοδος καλεί τον εαυτό της μέχρι να καταλήξει σε κάποιο αποτέλεσμα.
cathy Δημοσ. 9 Απριλίου 2005 Μέλος Δημοσ. 9 Απριλίου 2005 euxaristw poly!na'ste kala! telika to eftiaksa.mperdeua tous prwtous me tous perittous. talaipwrithika poly alla nomizw douleuei kala.idou: public static int firstNum(int x,int y) { if ((y==1)||(y==2)||(y==3)) return 2; else if ((x%(firstNum(x,y-1)))==0) return 1; else return y-1; } opote an i methodos epistrefei 1 den einai prwtos o arithmos, enw gia fn(x,x)>1 einai prwtos. (den tis sympathw katholou tis anadromes-recursive method calls...) thanks again! :roll: :grin:
daidalus Δημοσ. 10 Απριλίου 2005 Δημοσ. 10 Απριλίου 2005 Δεν είσαι η μόνη, και εγώ το βρίσκω εξαιρετικά δύσκολο να τις κατανοήσω.
cathy Δημοσ. 11 Απριλίου 2005 Μέλος Δημοσ. 11 Απριλίου 2005 nai e?hm..... twra prospathw na ftiaksw ena programma gia tn ypologismo palindromou arithmou...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.