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.

Alternative a copy.deepcopy()

D
Dave (1010 points)
14 26 33
in Es2 by (1.0k points)
closed by
Buonasera a tutti.Sto avendo un problema con l'esercizio 2.Ho impostato la gen_tree() in modo che, per creare i figli venga creata una deepcopy della griglia genitore per ogni casella vuota .Quindi contrassegno la casella e la passo nuovamente alla chiamata ricorsiva.Cio' avviene in maniera iterativa per ogni casella vuota.Il codice cosi impostato funziona , ma va in timeout con la griglia vuota. Il problema e' infatti che viene impiegato troppo tempo nel creare  una deepcopy per ogni iterazione. La mia domanda e' quindi ... e' possibile fare riferimento per ogni iterazione alla lista genitore senza dover creare ogni volta una copia e ovviamente senza modificare la lista di partenza??Mi scuso se sono stato poco chiaro
601 views
closed with the note: answered

2 Answers

Best answer
giorgio.belli (10140 points)
24 74 98
by (10.1k points)
selected by
Ciao, ho cercato e ricercato un'alternativa al deepcopy ma senza successo e quindi non so darti una risposta alla tua domanda specifica; pero posso dirti che nonostante io abbia usato il deepcopy il mio codice non va in timeout con la griglia vuota. L'unica cosa che posso consigliarti è di rivedere bene tutte le operazioni che fai e cercare di ottimizzarle perche magari è li che "sprechi" troppo tempo.
Spero di essere stato almeno un po di aiuto. Buona serata
D
Dave (1010 points)
14 26 33
by (1.0k points)
ok grazie per la risposta!
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
Ha ragione Giorgio ... tanti usano la deepcopy senza sforare il timeout.

Comunque per curiosità ho controllato ed è possibile fare una copia della griglia molto più rapidamente se non si usa deepcopy che deve fare un sacco di controlli.
Un modo qualsiasi per copiare una lista di liste di stringhe va molto più veloce.
by (9.9k points)
Quindi basterebbe fare una funzione apposta per copiare la griglia ed andrebbe meglio di deepcopy()? Wow!
D
Dave (1010 points)
14 26 33
by (1.0k points)
ok , cercero' di ottimizzare il resto. Grazie per la risposta.