PDA

Visualizza la versione completa : Torri Hanoi e Java


luk_leroi
26-01-2003, 15:24
cercando qua e l in rete ho trovato diverse spiegazioni sul problema Torri
di Hanoi...
teoricamente ho capito che la logica ricorsiva consiste nel spostare n-1
dischi dalla colonna di partenza a quella di "appoggio"..quando n (numero
dischi uguale a 1 ) spostare l'ultimo disco (il pi grande) nella torre di
arrivo..ed infine spostare gli (n-1) dischi sulla torre finale...

public void torriHanoi(n,start,end,app) {
if ( n == 1 )
muoviDisco(start,end);
else {
torriHanoi(n-1,start,end,app);
muoviDisco(start,end);
torriHanoi(n-1,start,end,app);
}
}

Questo dovrebbe essere il programmino...se per muovidisco intendiamo
stampare a video lo spostamento non riesco a capire coe faccia a stampare
gli spostamenti esatti...non stamperebbe sempre e solo A-->B dove A la
torre di partenza e B quella di arrivo? e la torre C?

chi mi aiuta a capire?

bDaniele
26-01-2003, 15:48
ho un esempio fatto da me per l'esame di programmazione. appena lo trovo te lo mando (non prima di domani mattina perch devo vedere sul pc in azienda).

Ciao

Dwenegar
26-01-2003, 19:55
Il codice sbagliato. Quello corretto :


hanoi(n, start, end, app)
if (n == 0) return;
hanoi(n-1, start, app, end);
move(start, end);
hanoi(n-1, app, end, start);


Per vedere che stampa gli spostamenti esatti si pu procedere per induzione. La dimostrazione semplice e va pari pari con la dimostrazione della correttezza dell'algoritmo.

bDaniele
28-01-2003, 13:40
Trovato!

Dimmi dove devo mandarti il paccozzo!

luk_leroi
28-01-2003, 18:32
luk_leroi@libero.it

grazie mille

Loading