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

Do you need help?

Problema con la submission dell'hw6 obb

N
Nhix (360 points)
5 6 7
in HW6 obbligatorio by (360 points)
recategorized by
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?
510 views

6 Answers

E
Edward (25950 points)
3 4 172
by (26.0k 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)
3 4 77
by (15.2k 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)
10 11 91
by (13.0k 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
by (7.8k 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)
13 15 118
by (18.9k 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
by (2.2k 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.