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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Problema con l'output della ricorsione

alessio. (2780 points)
2 6 14
in HW8 obbligatorio by (2.8k points)

Salve a tutti,

Ho impostato il programma in modo molto standard,quindi uso il dizionario che molti stanno usando del tipo:

{ROMAla:[['PARIGI','vendita'],['CAIRO','furto]]...}

Applico anche la ricorsione nel modo più comune:

  • partendo da ROMAla,per ogni sottolista ,aggiorno alla stringa(vuota di default) il segreto del relativo alla sottolista in cui mi trovo;
  • assegno a una lista(anch'essa vuota di default) il valore della chiamata ricorsiva a cui passo la lista degli indizi ridotta e la stringa con il segreto parziale;
  • quando arrivo al caso base(la lista degli indizi ha un solo elemento) completo la stringa e la appendo a un lista,ritorno la lista.
Qunado esco dalla funzione l'output è questo:

[('vendita diamanti rubati stanotte ad  anversa', 'CANCUN'), ('vendita diamanti cannoni mercato nero del  cairo', 'CANCUN'), ('vendita furto di diamanti a buckingham  palace', 'MILANO'), ('vendita furto mata hari ha sedotto ambasciatore  zambia', 'MILANO')]

Qualcuno riesce a spiegarmi perchè?

 

430 views
closed

1 Answer

Best answer
f
fabio.chiarini (2280 points)
0 0 7
by (2.3k points)
selected by
Prova a dare un'occhiata qui, un altro studente aveva il tuo stesso problema: https://q2a.di.uniroma1.it/20726/aiuto-sulla-ricorsione?course=hw8-required/homeworks/fondamenti-di-programmazione-20-21.

Come ho risposto lì, probabilmente stai aggiornando una variabile che poi passi come argomento nelle varie funzioni ricorsive. Invece di passare la variabile, prova a passare direttamente la stringa dei segreti "aggiornata" nella funzione ricorsiva, dovrebbe risolverti quel problema.
f
fabio.chiarini (2280 points)
0 0 7
by (2.3k points)
Per come l'ho impostato io, li concateno direttamente nell'argomento quando li passo alla funzione
CiZ (3810 points)
5 13 21
by (3.8k points)
Ho provato a fare così ma non si può fare funzione(paramentri, segreto + = nuovo_segreto)

Mi sto perdendo qualcosa
f
fabio.chiarini (2280 points)
0 0 7
by (2.3k points)
Togli l'uguale
CiZ (3810 points)
5 13 21
by (3.8k points)
Grazie mille, in questo hw mi sono perso sempre in sciocchezze, grazie tante
f
fabio.chiarini (2280 points)
0 0 7
by (2.3k points)
Figurati, di nulla