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

Do you need help?

Componenti lista uguali

dolcetto_gommoso (2790 points)
4 6 18
in HW1 opzionale by (2.8k points)
recategorized by
Salve a tutti, come sta andando l'homework?

Io sto avendo alcuni problemi con i tempi del test dei many 1s, e stavo pensando a fare un controllo se tutti i numeri all'interno della lista sono uguali...

Sapete darmi una dritta per raggiungere il mio obiettivo?

Vi ringrazio e vi auguro un buon proseguimento nello svolgimento dell'homework
453 views
closed

2 Answers

Best answer
Rametto (4910 points)
3 4 25
by (4.9k points)
selected by
all(v == lista[0] for v in lista)

lo pseudo-codice è questo, usalo per la tua condizione magari e poi vedi tu su cosa fare dopo. Sicuramente utilizza il controllo e poi fai le operazioni più consone sulla lista.
R
Raffaele (3850 points)
16 27 49
by (3.9k points)
edited by
All() è un metodo che controlla solo se all'interno dell'oggetto iterabile ci sono valori che ritornano True o False.

All(lista) ritorna falso se anche solo un valore all'interno ritorna falso.

Mentre ritorna vero se non ci sono all'interno valori che ritornano falso.

Ho usato il metodo all() anche io per far tornare vero quando il for si finisce di risolvere nella condizione prefissata. Il for si comporta come un generatore in questo caso, quindi diventa un è cone fosse un iterabile. Questo permette di risparmiare alcune righe di codice, ma poteva essere fatto anche senza il metodo all(). Per velocizzare l'algoritmo nel risolvere il caso di tutti numeri uguali nella lista, con somma definita, bisogna utilizzare una formula matematica(non ci sono elevamenti a potenza e non ci sono fattoriali) per calcolare automaticamente il numero di ripetizioni.
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
ciao! l'homework sta andando bene, anch'io non riesco a fare il passaggio con tutti 1, ci mette troppo tempo! penso perchè in quel caso il programma sfrutti il massimo di cicli dei for, perchè la stringa per arrivare al cont si riempe in modo lento(con gli 1) ogni volta (per tutta la mega lista).

Secondo me però non dovremmo lavorare sull'input specifico, perchè se hai un 2etutti1, il numero di iterazioni sarà comunque altissimo, e il controllo che cerchi tu non funzionerebbe!(o magari il 2 sarà in seconda posizione).