Do you need any 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

Problema con la submission dell'hw6 obb

N
Nhix (360 points)
4 6 7
asked Dec 4, 2019 in HW6 obbligatorio by Nhix (360 points)
recategorized Dec 4, 2019 by andrea.sterbini
Buongiorno, a qualcuno è già capitato o sa a cosa è dovuto il fatto che consegnando lo stesso identico file due volte, alla prima sottomissione si passano tutti i test e alla seconda ne salti uno?
380 views

6 Answers

E
Edward (25950 points)
2 4 172
answered Dec 4, 2019 by Edward (25,950 points)
Può darsi che la prima volta eri molto vicino al timeout, senza superarlo, ed hai passato tutti i test. Mente la seconda volta il programma ci ha messo più di 1s.

Se vai nella scheda correttezza dei risultati, in fondo puoi vedere il tempo impiegato da ogni test (se il test va in timeout vedrai SEMPRE come tempo 1.006s, poichè appena supera 1s viene interrotto).

Quindi se provi a ricaricarlo, e superi tutti i test ma con un tempo molto vicino ad 1s, ti conviene ottimizzare il programma.
Christian (15220 points)
2 4 77
answered Dec 4, 2019 by Christian (15,220 points)
Ciao, i tempi della VM sono variabili. Se nella prima sottomissione passavi un test per pochi millisecondi è possibile che alla seconda esecuzione la VM abbia impiegato un po' di più e tu sia andato in timeout.
Ti consiglio di ottimizzare il codice perché quando il prof eseguirà i test segreti saresti comunque esposto al rischio...
Tommaso Sgroi (12990 points)
6 11 91
answered Dec 4, 2019 by Tommaso Sgroi (12,990 points)
Ogni tanto mi è capitato, succede quando i tuoi tempi sono prossimi al timeout. Questo vuol dire che il tempo su quel test sulla VM è borderline sul secondo.
Antares (7770 points)
5 6 41
answered Dec 4, 2019 by Antares (7,770 points)
Io sto avendo un problema del genere cercando di ottenere il punto bonus di efficienza: a volte lo ottengo e altre volte no. Come ti hanno detto gli altri vuol dire che stai sul limite del timeout di 1s e non puoi essere sicuro che il tuo programma otterrà lo stesso risultato dopo che il prof avrà svolto i test segreti. Per andare sul sicuro la cosa migliore da fare è ottimizzare la logica del codice, diminuendo principalmente i cicli for e i controlli. Ricordati ad esempio di controllare segmento per segmento dopo che hai trovato il primo punto verde e non pixel per pixel. Se stai ad un pixel verde che sta al margine destro non andare a cercare il quadrato se il margine destro non è grande almeno quanto la lunghezza del lato del quadrato. Inoltre ricordati che non è necessario controllare neanche che tutto il segmento sia verde / diverso da nero ma solo il primo pixel di quel segmento.
plm (18850 points)
7 15 118
answered Dec 4, 2019 by plm (18,850 points)
Solitamente quando è così significa che quel test stava al limite con il timeout. Prova a "limare" il codice, togliendo anche delle operazioni che potresti fare in modi leggermente più efficenti. Lasciati dire che questi casi sono borderline e bisogna avere una grande sfortuna ahahah
F
Fra (2240 points)
4 4 7
answered Dec 4, 2019 by Fra (2,240 points)
Se usi il comand %timeit es1('foto_6_ter.png',40) ti calcola una media del tempo che impiega il tuo codice, insieme ad una deviazione standard. Se vedi che sommando la media con il valore positivo della deviazione standard il tempo si avvicina molto ad 1 sec, vorrà dire che il tuo codice ogni tanto supera il tempo limite.