Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 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 2021-22 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.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

Ridurre tempo esecuzione ultimi due test HW4

g
gullisa (1170 points)
7 24 31
in HW4 obbligatorio by (1.2k points)
edited by
Ciao a tutti,

consigli per incrementare la velocità di esecuzione negli ultimi due test (il mio codice sfora minimamente a causa delle sottofunzioni che mappano le vocali accentate a quelle non accentate e secondariamente nella sottofunzione che crea gli ES)? Nota: ho disabilitato il timeout per vedere la durata effettiva.

Grazie
239 views

3 Answers

AdSum (16290 points)
9 20 134
by (16.3k points)
Non conosciamo ne il tuo codice ne la tua logica, quindi è difficile darti un consiglio.
Comunque, la miglior maniera di velocizzare il codice è di evitare il più possibili i cicli, preferendo singole operazioni quando possibile, e ridurre il più possibile le operazioni, evitando quelle superflue e inutili ripeizioni, e quindi lasciando solo le necessarie.
g
gullisa (1170 points)
7 24 31
by (1.2k points)
Grazie, hai ragione. Allora: la logica è che le vocali vengono mappate tramite una tabella di traduzione su tutto il testo (tramite un metodo delle stringhe...) e che poi gli ES vengono creati seguendo la sequenza suggerita nel testo del problema verificando che un carattere faccia o meno parte dell'insieme delle vocali (in questa funzione generatrice degli ES uso una condizione di verifica all'interno di un ciclo).
AdSum (16290 points)
9 20 134
by (16.3k points)
Non vedo falle nel tuo ragionamento, probabilmente puoi ottimizzare altro. Calcola comunque una cosa, il tempo sulla tua macchina è differente rispetto a quella della VM.
andrea.sterbini (173640 points)
516 941 1795
by (174k points)
Nota, il timeout quando ferma un test impiega pochi millisecondi a stopparlo, per cui sembra di aver sforato di poco, ma il tempo vero può essere maggiore.
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
sicuro che il tuo tempo reale sia quello?
g
gullisa (1170 points)
7 24 31
by (1.2k points)
sì, ho disabilitato il timeout