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

Do you need help?

HW6 testo foto10.....17871

a
andreaamici (1740 points)
11 12 21
in HW6 obbligatorio by (1.7k points)
edited by

Buongiorno,mi manca di migliorare di quale ms quest'ultimo test.Sul mio computer alcune volte lo passa ed altre no,sull VM non lo passa...già scorro segmento per segmento e non pixel su pixel,altre idee per migliorare di quel poco che serve?

AGGIORNAMENTO:sono riuscito ad abbassare i tempo e mi scende 0.94ms ma poi sulla VM va in timeout,possibile?

744 views

5 Answers

edoardottt (8210 points)
1 3 37
by (8.2k points)
edited by

Cerca di evitare controlli inutili...se la griglia é di 10x10 pixel verdi e stai cercando quadrati di lato 5, se stai esaminando l'ottavo pixel della prima riga già sai che non può esserci un quadrato di lato 5, perché andrebbe fuori dalla griglia. Controlla anche https://q2a.di.uniroma1.it/14668/consigli-test_foto_10___6_ter___40__17871_ Spero di esserti stato d'aiuto.

a
andreaamici (1740 points)
11 12 21
by (1.7k points)
Già ho inserito questo controllo,non so più cosa inventarmi
Franciscus (6350 points)
7 14 24
by (6.4k points)
È un ottimo consiglio, lo dovrò implementare nel mio codice
A
Alessiorevo (1730 points)
6 6 14
by (1.7k points)
Usa solo 2 cicli per controllare se ci sono colonne e righe con i lati rossi insieme
a
andreaamici (1740 points)
11 12 21
by (1.7k points)
uso solo un ciclo..che fa sia riga che colonne
a
a.pietroluongo (11250 points)
20 39 131
by (11.3k points)
Si è possibile
a
andreaamici (1740 points)
11 12 21
by (1.7k points)

ottimo,quindi dovrei abbassarli ancora di più per stare tranquillo?o posso inviare una proof al professore ?frown

J
Jan Rogala (7260 points)
4 4 37
by (7.3k points)
Da quello che ho capito effettui prima un controllo per ogni riga se vi è un pixel verde, e poi fai qualcosa. Credo che questo qualcosa funzioni con uno scorrere quella riga per verificare che ci sia un lato del quadrato o meno. Quello che ti consiglio è di scorrere da pixel verde a pixel verde e non tutti i pixel,questo lo fai solamente conoscendo la distanza tra i vari pixel verdi che è sempre uguale, cambia solo da immagine a immagine.

Si è possibile che ancora non te lo passi sulla VM perchè magari hai un computer di gran lunga migliore rispetto alla VM, infatti i timer sono pensati per essere svolti sulla VM, non sul pc di casa.
a
andreaamici (1740 points)
11 12 21
by (1.7k points)
Già scorro da pixel verde a pixel verde,conoscendo appunto la distanza...una funziona che ci mette parecchio sembra sia il load dell'immagine ma su quello non ci posso fare nulla,quindi devo guadagnare qualche altro ms in altri modi...
J
Jan Rogala (7260 points)
4 4 37
by (7.3k points)
quando fai la verifica dei vari lati, li scorri uno alla volta o due a due? Che dato che conosci la distanza di conseguenza sai di quanti pixel è lungo il lato che cerchi
Tommaso Sgroi (12990 points)
10 11 91
by (13.0k points)
Penso che questo consiglio ti possa tornare utile:

Se abbiamo la nostra griglia dove V R N sono pixel rispettivamente verdi, rossi e neri

V R V R V R V N

R N R N R N R N

V R V R V N V N

R N R N R N R N

V R V R V R V N

R N R N R N R N

V R V R V R V N

R N R N R N R N

V R V R V R V N

e cerchiamo tutti i quadrati di lunghezza 2, allora non dovremmo controllare questi settori per vedere se formano quadrati.

Perché a prescindere non potranno mai formare quadrati di lunghezza = 2, limitando così l'iterazione a un gruppo più ristretto di pixel.

                         |  |  |  |

         V R V R |V R V N

         R N R N |R N R N

         V R V R |V N V N

         R N R N |R N R N

         V R V R |V R V N

         R N R N |R N R N

       ________|_______

     -->V R V R |V R V N

     -->R N R N |R N R N

     -->V R V R |V R V N
a
andreaamici (1740 points)
11 12 21
by (1.7k points)
Già faccio anche cosi,ho dei controlli sia sulla lunghezza che sull'altezza'