Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

La ricorsione inversa aggiunge elementi estranei alla sequenza da ricercare

IvanC (960 points)
8 13 19
in HW8 obbligatorio by (960 points)
edited by

Ciao ragazzi, ho un problema con le matrici di numeri: 

Per fare un esempio nel caso del file esempio4 la prima sequenza da ricercare è 517833.... e il programma deve ritornare -1;

Il problema nasce qui,  il mio algoritmo rileva che non c'è la sequenza corretta però nella ricorsione a scalare lui trova un carattere uguale a quello della sequenza e mi aggiunge 'G'  ( che non c'entra assolutamente nulla) , così facendo la len del mio percorso raggiunge la len della sequenza e me la salva come  output da restituire !! ... spero di essermi spiegato... so che sto sbagliando qualcosa, ma non capisco cosa o come  fissare il problema ..qualcuno sa illuminarmi su una probabile soluzione o ragionamento da fare in questi casi.. Grazie

333 views

2 Answers

a
a.pietroluongo (11250 points)
20 39 131
by (11.3k points)
edited by
Il problema nasce qui,  il mio algoritmo rileva che non c'è la sequenza corretta

- Cosa ritorna alla funzione precedente? usa rtrace

però nella ricorsione a scalare lui trova un carattere uguale a quello della sequenza e mi aggiunge 'G'

- Come fa a trovare un carattere se la ricorsione è finita?


.
IvanC (960 points)
8 13 19
by (960 points)
infatti.. per finire completamente e uscire, mediante il debug, ho visto che la funzione ricorsiva và all' indietro !!! E' vero che la ricorsione la sto imparando ora.. ma è un comportamento anomalo ??
a
a.pietroluongo (11250 points)
20 39 131
by (11.3k points)
No perché quando la funzione converge al
caso base, alla fine il caso base viene risolto ed il valore viene utilizzato all’indietro fino a quello iniziale.
plm (18850 points)
13 15 118
by (18.9k points)

Devi rivederti bene il caso base.

Devi essere sicuro che se il carattere che controlli passo passo è uguale al carattere in posizione [x,y] sulla quale ti trovi in quel momento sulla matrice sia uguale. SE E SOLO SE QUEL CASO E' VERO puoi continuare la ricorsione finchè non ti troverai al caso base

a
a.pietroluongo (11250 points)
20 39 131
by (11.3k points)
*con ciao dovrebbe ritornare DGG