Do you need any help?

[HW8req] Implementazione Della Ricorsione Su Dizionario

MRinaudo (3660 points)
18 39 50
asked Dec 9, 2020 in HW8 obbligatorio by MRinaudo (3,660 points)

Ciao a tutti,

per l'implementazione del mio algoritmo, ho deciso di organizzare le istruzioni in un dizionario.

Come chiavi ho la città di partenza/indizi, mentre come valori ho una lista contenente tutte le città di destinazione/segreto.

Il vero problema adesso è applicare la ricorsione.

Dovrei farlo su una lista contente gli indizi, o la strada che ho preso è sbagliata ?

Vi ringrazio in anticipo per i consigli. smiley

Saluti!

1 Answer

twgever (14740 points)
7 26 105
answered Dec 9, 2020 by twgever (14,740 points)
se il dizionario è fatto bene, allora già stai ad un buon punto. Passare ogni volta la lista degli indizi alla successiva chiamata ricorsiva è una buona idea per seguire i percorsi. Se hai strutturato il dizionario in maniera tale che fornendo l'indizio e la città, hai tutte le informazioni con quella combinazione, allora puoi procedere alla ricerca dei segreti
m
massimocoppola (950 points)
1 15 20
commented Dec 10, 2020 by massimocoppola (950 points)
scusate se mi intrometto ma io sono nella situazione di dover ripassare ad ogni chiamata oltre alla lista d'indizi anche il dizionario/istruzioni. c'è un modo per evitarlo?
s
stefano.fantauzzi (2260 points)
3 6 17
commented Dec 10, 2020 by stefano.fantauzzi (2,260 points)

Ciao credo che proprio teoricamente parlando se sei al passo n non sai quale sarà la partenza di Nikita al passo n + 2, quindi devi portarti dietro per forza tutte le possibili partenze con relativo indizio, ovvero tutte le chiavi del dizionario...se stai pensando di eliminare dal dizionario i valori già usati nel percorso con conseguente smaltimento delle chiavi, pensa al caso exponential e non farlo! wink

MRinaudo (3660 points)
18 39 50
commented Dec 11, 2020 by MRinaudo (3,660 points)
edited Dec 11, 2020 by MRinaudo

Ciao twgever,

grazie per la tua risposta.

Prendendo in considerazione il file "exponential.txt" come esempio, ho creato il seguente dizionario:

{('ROME', 'la'): [('MILAN', 'tic'), ('MILAN', 'toc'), ('MILAN', 'tac')],
 ('MILAN', 'la'): [('ROME', 'bing'), ('ROME', 'bong'), ('ROME', 'bang')]}

Non sono ancora riuscito ad implementare una funzione ricorsiva che mi trovi i segreti.

Come caso base, io ho impostato che la lista degli indizi ha 0 elementi.

Non saprei come procedere successivamente. Stavo pensando di scorrere ricorsivamente la lista degli indizi, ottenendo ['la', 'la', 'la', 'la', 'la', 'la', 'la', 'la', 'la', 'la', 'la'], ['la', 'la', 'la', 'la', 'la', 'la', 'la', 'la', 'la', 'la'], ['la', 'la', 'la', 'la', 'la', 'la', 'la', 'la', 'la'], etc., cioè la lista precedente senza il primo elemento, ma poi non saprei proprio come procedere da qui.

Non so se mi puoi dare qualche consiglio.

Grazie a tutti per le risposte!