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.

Consigli test_foto_10___6_ter___40__17871_

F
Fra (2240 points)
4 4 7
in HW6 obbligatorio by (2.2k points)
recategorized by
Il mio codice esegue 14 test e non passa test_foto_10___6_ter___40__17871_ per 0.006 sec, ho provato ad utilizzare funzioni per trovare il lato o il punto di origine ma ho visto che ci mette di più, c'è qualche modo per far velocizzare il codice di 0.007 secondi?
1.1k views

8 Answers

Christian (15220 points)
3 4 77
by (15.2k points)
Ciao, sicuro che quello sia realmente il timeout e non sia stopit a fermare il tuo programma?
(Nel file test_01.py c'è la variabile DEBUG da mettere a True)

Inoltre, scorri la griglia pixel per pixel o segmento per segmento?
F
Fra (2240 points)
4 4 7
by (2.2k points)
Se metto Debug True mi passa tutti i test.

Ho cercato di migliorare il codice al massimo, il ciclo parte dal primo punto verde e considero ogni segmento
Christian (15220 points)
3 4 77
by (15.2k points)
Ok, se usi il parametro - -durations 0 quando lanci i test ti dice effettivamente quanto tempo impiega per l'esecuzione di ogni singolo test.
L
Lolloxox31 (1610 points)
14 16 26
by (1.6k points)
Perchè? che succede se mettiamo debug a True?
Tommaso Sgroi (12990 points)
10 11 91
by (13.0k points)
Mi sembra si tolga il timeout nel test...
Christian (15220 points)
3 4 77
by (15.2k points)
Esatto, non tiene conto del timeout stopit
L
Lolloxox31 (1610 points)
14 16 26
by (1.6k points)
Aaaaaah ok   !
a
andreaamici (1740 points)
11 12 21
by (1.7k points)
occhio che puo essere che non lo passa di molto più tempo quel test,poichè il timeout si interrompe dopo un secondo...anche io pensavo dentro di me che sfiga per cosi poco poi ho scoperto che non era cosi poco ma bensi il timer che in automatico si stoppava...
F
Fra (2240 points)
4 4 7
by (2.2k points)
si hai ragione, ci metto intorno ai 3 secondi, grazie mille
jngelena (4880 points)
2 2 9
by (4.9k points)
La tua programma non che non passa per 0,006 secondi, e perché il professore ha usato libreria stop-it..una volta che superi 1secondo di esecuzione di stoppa Direttamente..quindi prova a cambiare file test, Invece di 1 secondo ,prova a mettere 20secondi. Così vedi il risultato di tua algoritmo
plm (18850 points)
13 15 118
by (18.9k points)
Sicuramente è la libreria che ferma il programma,nel caso non fosse quello prova a risparmiarti qualche assegnamento o leva una funzione
Tommaso Sgroi (12990 points)
10 11 91
by (13.0k points)
Dovresti rivedere il tuo algoritmo, perché il timeout effettivo potrebbe essere più alto, il test viene interrotto passato un secondo. Quindi i tempi restituiti sono leggermente più alti del secondo...

Ti consiglio di rivedere il tuo algoritmo e togliere controlli e operazioni superflue.
E
Edward (25950 points)
3 4 172
by (26.0k points)
Ti dice che ci mette 1.006 secondi per via del timeout, infatti dopo 1 secondo il programma viene interrotto (sicuramente ci mette più di 1.006s).

Devi rivedere il tuo algoritmo. Devi trovare un modo per non controllare segmenti che hai già controllato.
L
Lolloxox31 (1610 points)
14 16 26
by (1.6k points)
Ciao riferendomi sempre al test_6_ter sulla VM lo passa con 0,80/0,70 posso stare tranquillo per i test segreti o devo migliorarlo? poi ho provato anche a fare i test commentati per prova, devo considerare che sono giusti oppure no? grazie!
E
Edward (25950 points)
3 4 172
by (26.0k points)

sulla VM lo passa con 0,80/0,70 posso stare tranquillo per i test segreti o devo migliorarlo?

Calcola che i test segreti generalmente non hanno istanze troppo grandi, quindi penso che tu possa stare tranquillo. Puoi comunque provare a ricaricarlo più volte per vedere se il tempo di esecuzione si avvicina ad 1s (c'è varianza, ma con 0.8s penso tu possa stare tranquillo, la vedo dura arrivare ad 1s).

poi ho provato anche a fare i test commentati per prova, devo considerare che sono giusti oppure no?

Non ho capito cosa intendi.

L
Lolloxox31 (1610 points)
14 16 26
by (1.6k points)
Grazie per la risposta, si nel file test_01 ci sono due test delle immagini che sono commentati e di norma non vengono eseguiti come test, li ho provati, sono esatti oppure sono commentati proprio perchè non sono corretti?
E
Edward (25950 points)
3 4 172
by (26.0k points)
Sono commentati perchè il prof ha deciso di non usare quei test, li ha probabilmente sostituiti con altri test.
Quindi quei test che vedi commentati non vengono eseguiti. Non so se sono corretti o meno.
L
Lolloxox31 (1610 points)
14 16 26
by (1.6k points)
Ok grazie mille!!
fc-dev (16450 points)
16 20 34
by (16.5k points)
Molto probabilmente stai controllando ogni pixel di ogni segmento, basta che controlli un pixel per ogni segmento (con segmento intendo parte tra due punti verdi, non l'intero lato del quadrato)
J
Jan Rogala (7260 points)
4 4 37
by (7.3k points)
Molto probabilmente è la libreria stopit che te lo fa andare in timeout di cosi poco, dato che appena supera il timeout da errore. Prova a fare il timeit dentro spider di quel test per vedere quanto ci mette cosi da avere un'idea piu chiara. Un consiglio e di evitare di scorrere tutta l'immagine, per esempio facendo salti da un pixel verde ad un altro, per fare cio ti devi ovviamente calcolare questa distanza. Facendo cosi non effettui piu n scorrimenti ma soltano n-distanza volte