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

apories sxetika me programmatismo se java


cathy

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

Δημοσ.

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.)

Δημοσ.

Αν ήξερα πως μεταφράζονται οι "αναδρομικές μέθοδοι" θα το συζητούσαμε :)

προς το παρόν, δες εδώ

http://www.javahellug.org/

http://java.sun.com/docs/books/tutorial/

 

 

 

 

* το in.gr λέει αναδρομική=retroactive :grin: :smile:

*^2 καλή η γκρεκοπαιδεία, αλλα οταν συνδιάζεται με γκρικλιτσ ραγίζει κρύσταλα

Δημοσ.

Η φιλοσοφία της αναδρομής είναι η ίδια είτε πρόκειται για μεθόδους είτε για συναρτήσεις είτε για διαδικασίες.

 

Για να ελέγξεις αν ένας αριθμός Ν είναι πρώτος, ο πιο απλός αλγόριθμος είναι να δοκιμάσεις αν διαιρείται ακριβώς με κάποιον από τους αριθμούς 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

Δημοσ.

Όπως πολύ σωστά εξηγεί ο alkisgr μια αναδρομική μέθοδος καλεί τον εαυτό της μέχρι να καταλήξει σε κάποιο αποτέλεσμα.

Δημοσ.

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:

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...