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.

Es 1 Con 1 Ciclo [RISOLTO]

DRDLCN (8070 points)
28 68 104
in Es1 by (8.1k points)
recategorized by
Ragazzi in sostanza il test n. 9 non viene passato se si usa il metodo dei 2 cicli, sono 2 giorni che mi sbatto per ridurlo a 1 e mi sembra che la soluzione sia più facile di quello che penso ma  non la trovo.

Ho fatto una copia della lista voti e l'ho ordinata, cosi quando vado a confrontare le soglie e se il voto è maggiore dell'indice di soglia allora saranno maggiori anche tutti i voti successi cosi da ridurre molto il tempo di calcolo.

Ma non riesco ad impostare il ciclo, pensavo ad un ciclo while, qualcuno può darmi un idea?
913 views
closed with the note: risolto

2 Answers

Best answer
l
leoli (2930 points)
0 5 19
by (2.9k points)
selected by

In verità non è il numero di for che conta ma come sono in relazione fra loro, i for annidati sono molto "costosi" rispetto ai for in sequenza. Prova a ripensare il tuo codice utilizzando solo for in sequenza. In alternativa prova a trovare dei casi in cui il for si ferma prima. Oppure provando a cambiare approccio, prova cose nuove buttati sui dizionari o ordina la lista o cose cosi!

DRDLCN (8070 points)
28 68 104
by (8.1k points)
Grazie! Ordino la lista!
DanielePi (1440 points)
2 3 16
by (1.4k points)
reshown by
io anche ordinando la lista (se leggo bene l'output del grader) sforo di poco sull'ultimo test.
DRDLCN (8070 points)
28 68 104
by (8.1k points)
quanti secondi hai?
Adriano.Sapuppo (350 points)
2 6 8
by (350 points)
Ciao alla fine hai risolto? Che strada hai preso?
DanielePi (1440 points)
2 3 16
by (1.4k points)
poco sopra i 3.5, ma solo l'ultimo test sono quasi 3 secondi
l
leoli (2930 points)
0 5 19
by (2.9k points)
Il fatto è che non bisogna ordinare la lista e basta... ordinando la lista si possono adottare nuove strategie più efficienti però vanno implementate
Sickboy (28240 points)
9 25 68
by (28.2k points)
Puoi ridurre il tempo anche lasciando 2 for ma usando i dizionari
DRDLCN (8070 points)
28 68 104
by (8.1k points)
Ovvero? Come lo imposti un dizionario? Soglia : Voto
Sickboy (28240 points)
9 25 68
by (28.2k points)
Per esempio 0(soglia) : 10(contatore di quanti voti sono 0)
Cioè chiave da 0 a c e valore quanti hanno il voto" chiave"
Riduci notevolmente perche i voti si ripetono molte volte e cosi non li scorri tutti
DRDLCN (8070 points)
28 68 104
by (8.1k points)
Come lo creo questo dizionario? Devo comunque iterare con un ciclo